From cacb6460be74a94a8eebbe2933ed5e33927a8399 Mon Sep 17 00:00:00 2001 From: simplonco Date: Sun, 1 Jan 2023 17:30:44 +0100 Subject: [PATCH 01/35] deleted notes_hugo file --- notes_hugo.md | 32 -------------------------------- 1 file changed, 32 deletions(-) delete mode 100644 notes_hugo.md diff --git a/notes_hugo.md b/notes_hugo.md deleted file mode 100644 index 35785992..00000000 --- a/notes_hugo.md +++ /dev/null @@ -1,32 +0,0 @@ - -``` -FORTYTWO_CLIENT_ID=u-s4t2ud-49dc7b539bcfe1acb48b928b2b281671c99fc5bfab1faca57a536ab7e0075500 -FORTYTWO_CLIENT_SECRET=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 -``` - -https://stackoverflow.com/questions/34051747/get-environment-variable-from-docker-container - -## node.js & postgresql - -- [youtube tuto js + postgresql](https://www.youtube.com/watch?v=ufdHsFClAk0) -- [node.js wikipedia](https://en.wikipedia.org/wiki/Node.js) -- node.js is originally a replacement to the web server apache -- [youtube tuto nodejs fr](https://www.youtube.com/watch?v=0PA69L88HeI) - -code synchrone / asynchrone : -``` -// bocking code -var content = fs.readFileSync('MyFile.txt'); -console.log('my file :', content); - -// non-bocking code -fs.readFile('MyFile.txt', (err, content) => { - if (err) { - throw err; - } - console.log('my file :', content); -}); -``` -- [doc technos generic](https://devdocs.io/) -- [url.parse deprecated](https://stackoverflow.com/questions/17184791/node-js-url-parse-and-pathname-property) - From 32187fa06c546d321dfd6de493d12de78a1c8df3 Mon Sep 17 00:00:00 2001 From: simplonco Date: Mon, 2 Jan 2023 14:27:51 +0100 Subject: [PATCH 02/35] wip users with db --- .../nestjs/api_back/src/chat/chat.gateway.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts index c69413b1..883caae6 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts @@ -27,15 +27,19 @@ export class ChatGateway // how to guard the handleConnection ? // https://github.com/nestjs/nest/issues/882 async handleConnection(client) { - const paginationQuery = new PaginationQueryDto(); - const users = await this.usersService.findAll(paginationQuery); console.log('---- Client connected :', client.id); - console.log('users :', users); } handleDisconnect(client) { console.log('---- client disconnected :', client.id); } /* */ + @SubscribeMessage('test_users') + handleEvent(client: Socket, data: any): void { + const paginationQuery = new PaginationQueryDto(); + const users = await this.usersService.findAll(paginationQuery); + console.log('users :', users); + } + } From 1551ec64996a4bd8c96f34052393afbdfa44d1a7 Mon Sep 17 00:00:00 2001 From: simplonco Date: Mon, 2 Jan 2023 18:08:50 +0100 Subject: [PATCH 03/35] changed docker file nest to avoid rebuild everything each time, and small changes in chat gateway --- srcs/requirements/nestjs/Dockerfile | 37 +- .../nestjs/api_back/src/chat/chat.gateway.ts | 6 +- tests_hugo/README.md | 85 + tests_hugo/chat_nest/README.md | 16 + tests_hugo/chat_nest/chat_client/chat.html | 57 + .../chat_nest/chat_client/chat_receive_msg.js | 20 + .../chat_nest/chat_client/chat_submit_msg.js | 17 + .../chat_nest/chat_client/style/chat.css | 103 + .../chat_client/style/msg_thread.css | 4 + .../chat_nest/chat_client/style/msg_write.css | 16 + tests_hugo/chat_nest/chat_server/.eslintrc.js | 25 + tests_hugo/chat_nest/chat_server/.prettierrc | 4 + tests_hugo/chat_nest/chat_server/README.md | 73 + .../chat_server/dist/app.controller.d.ts | 3 + .../chat_server/dist/app.controller.js | 27 + .../chat_server/dist/app.controller.js.map | 1 + .../chat_server/dist/app.module.d.ts | 2 + .../chat_nest/chat_server/dist/app.module.js | 20 + .../chat_server/dist/app.module.js.map | 1 + .../chat_server/dist/app.service.d.ts | 3 + .../chat_nest/chat_server/dist/app.service.js | 20 + .../chat_server/dist/app.service.js.map | 1 + .../chat_server/dist/chat.gateway.d.ts | 4 + .../chat_server/dist/chat.gateway.js | 43 + .../chat_server/dist/chat.gateway.js.map | 1 + .../chat_nest/chat_server/dist/main.d.ts | 1 + tests_hugo/chat_nest/chat_server/dist/main.js | 10 + .../chat_nest/chat_server/dist/main.js.map | 1 + .../dist/tsconfig.build.tsbuildinfo | 1 + .../chat_nest/chat_server/nest-cli.json | 5 + .../chat_nest/chat_server/package-lock.json | 14851 ++++++++++++++++ tests_hugo/chat_nest/chat_server/package.json | 74 + .../chat_server/src/app.controller.ts | 7 + .../chat_nest/chat_server/src/app.module.ts | 7 + .../chat_nest/chat_server/src/chat.gateway.ts | 24 + tests_hugo/chat_nest/chat_server/src/main.ts | 8 + .../chat_server/test/app.e2e-spec.ts | 24 + .../chat_nest/chat_server/test/jest-e2e.json | 9 + .../chat_nest/chat_server/tsconfig.build.json | 4 + .../chat_nest/chat_server/tsconfig.json | 21 + tests_hugo/chat_nest_2/.eslintrc.js | 22 + tests_hugo/chat_nest_2/.prettierrc | 4 + tests_hugo/chat_nest_2/README.md | 73 + .../chat_nest_2/dist/app.controller.d.ts | 3 + tests_hugo/chat_nest_2/dist/app.controller.js | 27 + .../chat_nest_2/dist/app.controller.js.map | 1 + tests_hugo/chat_nest_2/dist/app.module.d.ts | 2 + tests_hugo/chat_nest_2/dist/app.module.js | 22 + tests_hugo/chat_nest_2/dist/app.module.js.map | 1 + tests_hugo/chat_nest_2/dist/main.d.ts | 1 + tests_hugo/chat_nest_2/dist/main.js | 10 + tests_hugo/chat_nest_2/dist/main.js.map | 1 + .../dist/tsconfig.build.tsbuildinfo | 1 + tests_hugo/chat_nest_2/nest-cli.json | 5 + tests_hugo/chat_nest_2/package-lock.json | 14605 +++++++++++++++ tests_hugo/chat_nest_2/package.json | 71 + tests_hugo/chat_nest_2/src/app.controller.ts | 8 + tests_hugo/chat_nest_2/src/app.module.ts | 9 + tests_hugo/chat_nest_2/src/main.ts | 11 + tests_hugo/chat_nest_2/test/app.e2e-spec.ts | 24 + tests_hugo/chat_nest_2/test/jest-e2e.json | 9 + tests_hugo/chat_nest_2/tsconfig.build.json | 4 + tests_hugo/chat_nest_2/tsconfig.json | 21 + tests_hugo/chat_node/README.md | 54 + .../chat_node/chat_client/_test_layouts.js | 32 + tests_hugo/chat_node/chat_client/chat.html | 444 + tests_hugo/chat_node/chat_client/chat2.html | 59 + .../chat_node/chat_client/chat_add_msg.js | 32 + .../chat_node/chat_client/chat_add_room.js | 3 + .../chat_node/chat_client/chat_connection.js | 5 + .../chat_node/chat_client/chat_create_room.js | 5 + .../chat_node/chat_client/chat_send_msg.js | 32 + .../chat_node/chat_client/event_updatemsg.js | 5 + .../chat_client/event_updaterooms.js | 30 + .../chat_node/chat_client/style/chat.css | 82 + .../chat_client/style/chat__global.css | 67 + .../chat_client/style/chat_blocked.css | 39 + .../chat_client/style/chat_buttons.css | 55 + .../chat_client/style/chat_close.css | 20 + .../chat_node/chat_client/style/chat_form.css | 120 + .../chat_node/chat_client/style/chat_msg.css | 75 + .../chat_client/style/chat_panels.css | 3 + .../chat_client/style/chat_write.css | 36 + .../chat_client/style/layout_close.css | 58 + .../chat_client/style/layout_create.css | 28 + .../chat_client/style/layout_home.css | 54 + .../chat_client/style/layout_mute.css | 30 + .../chat_client/style/layout_new.css | 40 + .../chat_client/style/layout_protected.css | 36 + .../chat_client/style/layout_room.css | 34 + .../chat_client/style/layout_room_set.css | 38 + .../chat_client/style/layout_settings.css | 32 + .../chat_client/style/layout_user.css | 80 + .../chat_node/chat_server/event_adduser.js | 21 + .../chat_node/chat_server/event_createroom.js | 9 + .../chat_node/chat_server/event_sendmsg.js | 8 + .../chat_node/chat_server/package-lock.json | 1360 ++ tests_hugo/chat_node/chat_server/package.json | 7 + tests_hugo/chat_node/chat_server/server.js | 74 + tests_hugo/js_async/async.js | 133 + tests_hugo/nest_course/.eslintrc.js | 25 + tests_hugo/nest_course/.prettierrc | 4 + tests_hugo/nest_course/README.md | 73 + .../nest_course/dist/app.controller.d.ts | 6 + tests_hugo/nest_course/dist/app.controller.js | 34 + .../nest_course/dist/app.controller.js.map | 1 + tests_hugo/nest_course/dist/app.module.d.ts | 2 + tests_hugo/nest_course/dist/app.module.js | 25 + tests_hugo/nest_course/dist/app.module.js.map | 1 + tests_hugo/nest_course/dist/app.service.d.ts | 3 + tests_hugo/nest_course/dist/app.service.js | 20 + .../nest_course/dist/app.service.js.map | 1 + .../dist/coffees/coffees.controller.d.ts | 10 + .../dist/coffees/coffees.controller.js | 79 + .../dist/coffees/coffees.controller.js.map | 1 + .../dist/coffees/coffees.service.d.ts | 9 + .../dist/coffees/coffees.service.js | 47 + .../dist/coffees/coffees.service.js.map | 1 + .../dist/coffees/entities/coffee.entity.d.ts | 6 + .../dist/coffees/entities/coffee.entity.js | 7 + .../coffees/entities/coffee.entity.js.map | 1 + tests_hugo/nest_course/dist/main.d.ts | 1 + tests_hugo/nest_course/dist/main.js | 10 + tests_hugo/nest_course/dist/main.js.map | 1 + .../dist/tsconfig.build.tsbuildinfo | 1 + tests_hugo/nest_course/nest-cli.json | 5 + tests_hugo/nest_course/package-lock.json | 14601 +++++++++++++++ tests_hugo/nest_course/package.json | 71 + .../nest_course/src/app.controller.spec.ts | 22 + tests_hugo/nest_course/src/app.controller.ts | 12 + tests_hugo/nest_course/src/app.module.ts | 12 + tests_hugo/nest_course/src/app.service.ts | 8 + .../src/coffees/coffees.controller.spec.ts | 18 + .../src/coffees/coffees.controller.ts | 45 + .../src/coffees/coffees.service.spec.ts | 18 + .../src/coffees/coffees.service.ts | 42 + .../src/coffees/entities/coffee.entity.ts | 6 + tests_hugo/nest_course/src/main.ts | 8 + tests_hugo/nest_course/test/app.e2e-spec.ts | 24 + tests_hugo/nest_course/test/jest-e2e.json | 9 + tests_hugo/nest_course/tsconfig.build.json | 4 + tests_hugo/nest_course/tsconfig.json | 21 + tests_hugo/pure_node/index.html | 9 + tests_hugo/pure_node/index2.html | 10 + tests_hugo/pure_node/myExpress.js | 65 + tests_hugo/pure_node/server.js | 10 + tests_hugo/pure_node/server.js.bak | 39 + tests_hugo/with_express/index.html | 9 + tests_hugo/with_express/package.json | 17 + tests_hugo/with_express/server.js | 10 + 150 files changed, 49244 insertions(+), 31 deletions(-) create mode 100644 tests_hugo/README.md create mode 100644 tests_hugo/chat_nest/README.md create mode 100644 tests_hugo/chat_nest/chat_client/chat.html create mode 100644 tests_hugo/chat_nest/chat_client/chat_receive_msg.js create mode 100644 tests_hugo/chat_nest/chat_client/chat_submit_msg.js create mode 100644 tests_hugo/chat_nest/chat_client/style/chat.css create mode 100644 tests_hugo/chat_nest/chat_client/style/msg_thread.css create mode 100644 tests_hugo/chat_nest/chat_client/style/msg_write.css create mode 100644 tests_hugo/chat_nest/chat_server/.eslintrc.js create mode 100644 tests_hugo/chat_nest/chat_server/.prettierrc create mode 100644 tests_hugo/chat_nest/chat_server/README.md create mode 100644 tests_hugo/chat_nest/chat_server/dist/app.controller.d.ts create mode 100644 tests_hugo/chat_nest/chat_server/dist/app.controller.js create mode 100644 tests_hugo/chat_nest/chat_server/dist/app.controller.js.map create mode 100644 tests_hugo/chat_nest/chat_server/dist/app.module.d.ts create mode 100644 tests_hugo/chat_nest/chat_server/dist/app.module.js create mode 100644 tests_hugo/chat_nest/chat_server/dist/app.module.js.map create mode 100644 tests_hugo/chat_nest/chat_server/dist/app.service.d.ts create mode 100644 tests_hugo/chat_nest/chat_server/dist/app.service.js create mode 100644 tests_hugo/chat_nest/chat_server/dist/app.service.js.map create mode 100644 tests_hugo/chat_nest/chat_server/dist/chat.gateway.d.ts create mode 100644 tests_hugo/chat_nest/chat_server/dist/chat.gateway.js create mode 100644 tests_hugo/chat_nest/chat_server/dist/chat.gateway.js.map create mode 100644 tests_hugo/chat_nest/chat_server/dist/main.d.ts create mode 100644 tests_hugo/chat_nest/chat_server/dist/main.js create mode 100644 tests_hugo/chat_nest/chat_server/dist/main.js.map create mode 100644 tests_hugo/chat_nest/chat_server/dist/tsconfig.build.tsbuildinfo create mode 100644 tests_hugo/chat_nest/chat_server/nest-cli.json create mode 100644 tests_hugo/chat_nest/chat_server/package-lock.json create mode 100644 tests_hugo/chat_nest/chat_server/package.json create mode 100644 tests_hugo/chat_nest/chat_server/src/app.controller.ts create mode 100644 tests_hugo/chat_nest/chat_server/src/app.module.ts create mode 100644 tests_hugo/chat_nest/chat_server/src/chat.gateway.ts create mode 100644 tests_hugo/chat_nest/chat_server/src/main.ts create mode 100644 tests_hugo/chat_nest/chat_server/test/app.e2e-spec.ts create mode 100644 tests_hugo/chat_nest/chat_server/test/jest-e2e.json create mode 100644 tests_hugo/chat_nest/chat_server/tsconfig.build.json create mode 100644 tests_hugo/chat_nest/chat_server/tsconfig.json create mode 100644 tests_hugo/chat_nest_2/.eslintrc.js create mode 100644 tests_hugo/chat_nest_2/.prettierrc create mode 100644 tests_hugo/chat_nest_2/README.md create mode 100644 tests_hugo/chat_nest_2/dist/app.controller.d.ts create mode 100644 tests_hugo/chat_nest_2/dist/app.controller.js create mode 100644 tests_hugo/chat_nest_2/dist/app.controller.js.map create mode 100644 tests_hugo/chat_nest_2/dist/app.module.d.ts create mode 100644 tests_hugo/chat_nest_2/dist/app.module.js create mode 100644 tests_hugo/chat_nest_2/dist/app.module.js.map create mode 100644 tests_hugo/chat_nest_2/dist/main.d.ts create mode 100644 tests_hugo/chat_nest_2/dist/main.js create mode 100644 tests_hugo/chat_nest_2/dist/main.js.map create mode 100644 tests_hugo/chat_nest_2/dist/tsconfig.build.tsbuildinfo create mode 100644 tests_hugo/chat_nest_2/nest-cli.json create mode 100644 tests_hugo/chat_nest_2/package-lock.json create mode 100644 tests_hugo/chat_nest_2/package.json create mode 100644 tests_hugo/chat_nest_2/src/app.controller.ts create mode 100644 tests_hugo/chat_nest_2/src/app.module.ts create mode 100644 tests_hugo/chat_nest_2/src/main.ts create mode 100644 tests_hugo/chat_nest_2/test/app.e2e-spec.ts create mode 100644 tests_hugo/chat_nest_2/test/jest-e2e.json create mode 100644 tests_hugo/chat_nest_2/tsconfig.build.json create mode 100644 tests_hugo/chat_nest_2/tsconfig.json create mode 100644 tests_hugo/chat_node/README.md create mode 100644 tests_hugo/chat_node/chat_client/_test_layouts.js create mode 100644 tests_hugo/chat_node/chat_client/chat.html create mode 100644 tests_hugo/chat_node/chat_client/chat2.html create mode 100644 tests_hugo/chat_node/chat_client/chat_add_msg.js create mode 100644 tests_hugo/chat_node/chat_client/chat_add_room.js create mode 100644 tests_hugo/chat_node/chat_client/chat_connection.js create mode 100644 tests_hugo/chat_node/chat_client/chat_create_room.js create mode 100644 tests_hugo/chat_node/chat_client/chat_send_msg.js create mode 100644 tests_hugo/chat_node/chat_client/event_updatemsg.js create mode 100644 tests_hugo/chat_node/chat_client/event_updaterooms.js create mode 100644 tests_hugo/chat_node/chat_client/style/chat.css create mode 100644 tests_hugo/chat_node/chat_client/style/chat__global.css create mode 100644 tests_hugo/chat_node/chat_client/style/chat_blocked.css create mode 100644 tests_hugo/chat_node/chat_client/style/chat_buttons.css create mode 100644 tests_hugo/chat_node/chat_client/style/chat_close.css create mode 100644 tests_hugo/chat_node/chat_client/style/chat_form.css create mode 100644 tests_hugo/chat_node/chat_client/style/chat_msg.css create mode 100644 tests_hugo/chat_node/chat_client/style/chat_panels.css create mode 100644 tests_hugo/chat_node/chat_client/style/chat_write.css create mode 100644 tests_hugo/chat_node/chat_client/style/layout_close.css create mode 100644 tests_hugo/chat_node/chat_client/style/layout_create.css create mode 100644 tests_hugo/chat_node/chat_client/style/layout_home.css create mode 100644 tests_hugo/chat_node/chat_client/style/layout_mute.css create mode 100644 tests_hugo/chat_node/chat_client/style/layout_new.css create mode 100644 tests_hugo/chat_node/chat_client/style/layout_protected.css create mode 100644 tests_hugo/chat_node/chat_client/style/layout_room.css create mode 100644 tests_hugo/chat_node/chat_client/style/layout_room_set.css create mode 100644 tests_hugo/chat_node/chat_client/style/layout_settings.css create mode 100644 tests_hugo/chat_node/chat_client/style/layout_user.css create mode 100644 tests_hugo/chat_node/chat_server/event_adduser.js create mode 100644 tests_hugo/chat_node/chat_server/event_createroom.js create mode 100644 tests_hugo/chat_node/chat_server/event_sendmsg.js create mode 100644 tests_hugo/chat_node/chat_server/package-lock.json create mode 100644 tests_hugo/chat_node/chat_server/package.json create mode 100644 tests_hugo/chat_node/chat_server/server.js create mode 100644 tests_hugo/js_async/async.js create mode 100644 tests_hugo/nest_course/.eslintrc.js create mode 100644 tests_hugo/nest_course/.prettierrc create mode 100644 tests_hugo/nest_course/README.md create mode 100644 tests_hugo/nest_course/dist/app.controller.d.ts create mode 100644 tests_hugo/nest_course/dist/app.controller.js create mode 100644 tests_hugo/nest_course/dist/app.controller.js.map create mode 100644 tests_hugo/nest_course/dist/app.module.d.ts create mode 100644 tests_hugo/nest_course/dist/app.module.js create mode 100644 tests_hugo/nest_course/dist/app.module.js.map create mode 100644 tests_hugo/nest_course/dist/app.service.d.ts create mode 100644 tests_hugo/nest_course/dist/app.service.js create mode 100644 tests_hugo/nest_course/dist/app.service.js.map create mode 100644 tests_hugo/nest_course/dist/coffees/coffees.controller.d.ts create mode 100644 tests_hugo/nest_course/dist/coffees/coffees.controller.js create mode 100644 tests_hugo/nest_course/dist/coffees/coffees.controller.js.map create mode 100644 tests_hugo/nest_course/dist/coffees/coffees.service.d.ts create mode 100644 tests_hugo/nest_course/dist/coffees/coffees.service.js create mode 100644 tests_hugo/nest_course/dist/coffees/coffees.service.js.map create mode 100644 tests_hugo/nest_course/dist/coffees/entities/coffee.entity.d.ts create mode 100644 tests_hugo/nest_course/dist/coffees/entities/coffee.entity.js create mode 100644 tests_hugo/nest_course/dist/coffees/entities/coffee.entity.js.map create mode 100644 tests_hugo/nest_course/dist/main.d.ts create mode 100644 tests_hugo/nest_course/dist/main.js create mode 100644 tests_hugo/nest_course/dist/main.js.map create mode 100644 tests_hugo/nest_course/dist/tsconfig.build.tsbuildinfo create mode 100644 tests_hugo/nest_course/nest-cli.json create mode 100644 tests_hugo/nest_course/package-lock.json create mode 100644 tests_hugo/nest_course/package.json create mode 100644 tests_hugo/nest_course/src/app.controller.spec.ts create mode 100644 tests_hugo/nest_course/src/app.controller.ts create mode 100644 tests_hugo/nest_course/src/app.module.ts create mode 100644 tests_hugo/nest_course/src/app.service.ts create mode 100644 tests_hugo/nest_course/src/coffees/coffees.controller.spec.ts create mode 100644 tests_hugo/nest_course/src/coffees/coffees.controller.ts create mode 100644 tests_hugo/nest_course/src/coffees/coffees.service.spec.ts create mode 100644 tests_hugo/nest_course/src/coffees/coffees.service.ts create mode 100644 tests_hugo/nest_course/src/coffees/entities/coffee.entity.ts create mode 100644 tests_hugo/nest_course/src/main.ts create mode 100644 tests_hugo/nest_course/test/app.e2e-spec.ts create mode 100644 tests_hugo/nest_course/test/jest-e2e.json create mode 100644 tests_hugo/nest_course/tsconfig.build.json create mode 100644 tests_hugo/nest_course/tsconfig.json create mode 100644 tests_hugo/pure_node/index.html create mode 100644 tests_hugo/pure_node/index2.html create mode 100644 tests_hugo/pure_node/myExpress.js create mode 100644 tests_hugo/pure_node/server.js create mode 100644 tests_hugo/pure_node/server.js.bak create mode 100644 tests_hugo/with_express/index.html create mode 100644 tests_hugo/with_express/package.json create mode 100644 tests_hugo/with_express/server.js diff --git a/srcs/requirements/nestjs/Dockerfile b/srcs/requirements/nestjs/Dockerfile index 2da3b747..8d600d69 100644 --- a/srcs/requirements/nestjs/Dockerfile +++ b/srcs/requirements/nestjs/Dockerfile @@ -14,35 +14,16 @@ ARG POSTGRES_PORT COPY ./api_back ./ COPY ./api_back/src/uploads/avatars/default.png ./uploads/avatars/default.png COPY ./api_back/.env ./.env -#RUN sed -i "s/\$NODE_ENV/${NODE_ENV}/g" ./.env && \ -# sed -i "s/\$WEBSITE_HOST/${WEBSITE_HOST}/g" ./.env && \ -# sed -i "s/\$WEBSITE_PORT/${WEBSITE_PORT}/g" ./.env && \ -# sed -i "s/\$POSTGRES_USER/${POSTGRES_USER}/g" ./.env && \ -# sed -i "s/\$POSTGRES_PASSWORD/${POSTGRES_PASSWORD}/g" ./.env && \ -# sed -i "s/\$POSTGRES_DB/${POSTGRES_DB}/g" ./.env && \ -# sed -i "s/\$POSTGRES_HOST/${POSTGRES_HOST}/g" ./.env && \ -# sed -i "s/\$POSTGRES_PORT/${POSTGRES_PORT}/g" ./.env - -RUN sed -i "s/\$NODE_ENV/${NODE_ENV}/g" ./.env -RUN sed -i "s/\$WEBSITE_HOST/${WEBSITE_HOST}/g" ./.env -RUN sed -i "s/\$WEBSITE_PORT/${WEBSITE_PORT}/g" ./.env -RUN sed -i "s/\$POSTGRES_USER/${POSTGRES_USER}/g" ./.env - -RUN echo ["$POSTGRESS_PASSWORD"] && \ - echo ["$POSTGRESS_PASSWORD"] && \ - echo ["$POSTGRESS_PASSWORD"] && \ - echo ["$POSTGRESS_PASSWORD"] && \ - echo ["$POSTGRESS_PASSWORD"] && \ - echo ["$POSTGRESS_PASSWORD"] && \ - echo ["$POSTGRESS_PASSWORD"] && \ - sed -i "s/\$POSTGRES_PASSWORD/'${POSTGRESS_PASSWORD}'/g" ./.env - -RUN sed -i "s/\$POSTGRES_DB/${POSTGRES_DB}/g" ./.env -RUN sed -i "s/\$POSTGRES_HOST/${POSTGRES_HOST}/g" ./.env -RUN sed -i "s/\$POSTGRES_PORT/${POSTGRES_PORT}/g" ./.env - RUN npm install -RUN npm ci + +RUN sed -i "s/\$NODE_ENV/${NODE_ENV}/g" ./.env && \ + sed -i "s/\$WEBSITE_HOST/${WEBSITE_HOST}/g" ./.env && \ + sed -i "s/\$WEBSITE_PORT/${WEBSITE_PORT}/g" ./.env && \ + sed -i "s/\$POSTGRES_USER/${POSTGRES_USER}/g" ./.env && \ + sed -i "s/\$POSTGRES_PASSWORD/${POSTGRES_PASSWORD}/g" ./.env && \ + sed -i "s/\$POSTGRES_DB/${POSTGRES_DB}/g" ./.env && \ + sed -i "s/\$POSTGRES_HOST/${POSTGRES_HOST}/g" ./.env && \ + sed -i "s/\$POSTGRES_PORT/${POSTGRES_PORT}/g" ./.env CMD [ "npm", "run", "start:dev" ] diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts index 883caae6..6b54710e 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts @@ -29,15 +29,15 @@ export class ChatGateway async handleConnection(client) { console.log('---- Client connected :', client.id); } - handleDisconnect(client) { + async handleDisconnect(client) { console.log('---- client disconnected :', client.id); } /* */ @SubscribeMessage('test_users') - handleEvent(client: Socket, data: any): void { + handleMessage(): void { const paginationQuery = new PaginationQueryDto(); - const users = await this.usersService.findAll(paginationQuery); + const users = this.usersService.findAll(paginationQuery); console.log('users :', users); } diff --git a/tests_hugo/README.md b/tests_hugo/README.md new file mode 100644 index 00000000..5a70650e --- /dev/null +++ b/tests_hugo/README.md @@ -0,0 +1,85 @@ +``` + fetch conversations + ___________________ +| _ | +| no conversation | if len == 0 +| | +| [join public] | +| | +| [start new] | +| | +|...................| +| | +|___________________| + ___________________ +| convs _ | +|___________________| if len > 0 +| | +| | +| | +| | +| | +|___________________| +| |send | +|_____________|_____| + ___________________ +| convs _ | +|_ ____________| +| .list | +| .of | +| .convs | +| | +| | +|___________________| +| |send | +|_____________|_____| + ___________________ +| [join public] _ | +| | if join_public +| .list | fetch public_conversations +| .of | +| .public | +| .convs | +| | +| | +| | +|___________________| + ___________________ +| [start new] _ | +| | if start_new +| .list | fetch friends +| .of | +| .friends | +| | +| | +| | +| | +|___________________| + ___________________ +| convs _ | +|___________________| if click_on_list_element +| .blablabla | fetch conversation(list_element) +| blablabla. | +| .bla | --server side-- +| blabla. | if conversation_exist +| bla. | return text +|___________________| else if is_allowed +| |send | return "start conv" +|_____________|_____| + +``` + +### goals : +- own messages are not sent to myself and directly printed +- i can create a room +- my messages are sent to other people in room +- i can choose in which room to send the messages + +### routes : +- https://transcendance:8080/api/v2/chat/conversations + - returns list of objects, each object contains : + - id: unique conv identification + - title: name of the conversation (name of other guy if direct message) + - + + diff --git a/tests_hugo/chat_nest/README.md b/tests_hugo/chat_nest/README.md new file mode 100644 index 00000000..1d4565a2 --- /dev/null +++ b/tests_hugo/chat_nest/README.md @@ -0,0 +1,16 @@ +https://www.youtube.com/watch?v=7xpLYk4q0Sg + +npm install (to install packages) +npm run start:dev + + +- [ ] can create chat-rooms (public/private, password protected) +- [ ] send direct messages +- [ ] block other users +- [ ] creators of chat-room are owners, untill they leave +- [ ] chat-room owner can set, change, remove password +- [ ] chat-room owner is administrator and can set other administrators +- [ ] administrators can ban or mute for a time other users +- [ ] send game invitation in chat +- [ ] view user profiles from chat + diff --git a/tests_hugo/chat_nest/chat_client/chat.html b/tests_hugo/chat_nest/chat_client/chat.html new file mode 100644 index 00000000..3906a4b8 --- /dev/null +++ b/tests_hugo/chat_nest/chat_client/chat.html @@ -0,0 +1,57 @@ + + + + + + + + + + + + +
+ +
+
+ + + +
+
+
+
+ +
+ +
+
+
+ + + +
+ + + + + + + + + + + + diff --git a/tests_hugo/chat_nest/chat_client/chat_receive_msg.js b/tests_hugo/chat_nest/chat_client/chat_receive_msg.js new file mode 100644 index 00000000..16d81f90 --- /dev/null +++ b/tests_hugo/chat_nest/chat_client/chat_receive_msg.js @@ -0,0 +1,20 @@ + +socket.on('message', ({ data }) => { + handle_new_message(data); +}); + +const handle_new_message = (message) => { + const div_thread = document.getElementById('msg_thread'); + + console.log("received message:"); + console.log(`[${message}]`); + + div_thread.appendChild(build_new_message(message)); +} + +const build_new_message = (message) => { + const p = document.createElement("p"); + p.appendChild(document.createTextNode(message)); + return p; +} + diff --git a/tests_hugo/chat_nest/chat_client/chat_submit_msg.js b/tests_hugo/chat_nest/chat_client/chat_submit_msg.js new file mode 100644 index 00000000..2a7096cb --- /dev/null +++ b/tests_hugo/chat_nest/chat_client/chat_submit_msg.js @@ -0,0 +1,17 @@ + +const submit_new_message = () => { + const div_msg = document.getElementById('msg_write'); + /* + const msg = div_msg.value; + const msg = div_msg.innerText; + */ + const msg = div_msg.innerText.trim(); + + console.log("msg:"); + console.log(`[${msg}]`); + console.log(msg.length); + + if (msg.length > 0) + socket.emit('message', { data: msg }); +} + diff --git a/tests_hugo/chat_nest/chat_client/style/chat.css b/tests_hugo/chat_nest/chat_client/style/chat.css new file mode 100644 index 00000000..75874649 --- /dev/null +++ b/tests_hugo/chat_nest/chat_client/style/chat.css @@ -0,0 +1,103 @@ + +@import 'msg_thread.css'; +@import 'msg_write.css'; + +/** + * GRID + */ + +/* global settings */ + +.chat_box * { + position: relative; + box-sizing: border-box; +} +.chat_box .chat_item.controls_area { grid-area: controls;} +.chat_box .chat_item.open_close { grid-area: open_close;} +.chat_box .chat_item.msg_thread { grid-area: msg_thread;} +.chat_box .chat_item.msg_write { grid-area: msg_write;} +.chat_box .chat_item.msg_send { grid-area: msg_send;} +.chat_box { + position: fixed; + bottom: 20px; + right: 20px; + display: grid; + grid: + ' controls open_close ' auto + ' msg_thread msg_thread ' 1fr + ' msg_write msg_send ' auto + / 1fr auto; + gap: 0px; + padding: 0px; + width: auto; + height: auto; + + border: 1px solid green; +} +.chat_box .chat_item { + /* + border: 1px solid blue; + */ +} +/* buttons settings */ +.chat_box .chat_item.button { + display: flex; + width: auto; + padding: 10px; + cursor: pointer; + outline: none; + border: none; + background-color: rgb(220, 220, 220); +} +.chat_box .chat_item.button p { + margin: auto; +} +.chat_box .chat_item.button:hover { + background-color: rgb(200, 200, 200); +} +.chat_box .chat_item.button:active { + background-color: rgb(220, 220, 220); +} +/* collapse settings */ +.chat_box .chat_item:not(.open_close) { + display: none; +} +#chat_input:checked + +.chat_box { + gap: 5px; + padding: 5px; + width: 300px; + height: 400px; +} +#chat_input:checked + +.chat_box .chat_item { + display: flex; +} +#chat_input:checked + +.chat_box .chat_item.open_close p { + display: none; +} +#chat_input:checked + +.chat_box .chat_item.open_close { + /* + */ + width: 30px; + height: 20px; + padding: 0px; + justify-self: end; + background-color: transparent; + border: none; +} +#chat_input:checked + +.chat_box .chat_item.open_close::before { + --collapse_width: 20px; + content: ""; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + height: 2px; + width: 15px; + background-color: black; +} + diff --git a/tests_hugo/chat_nest/chat_client/style/msg_thread.css b/tests_hugo/chat_nest/chat_client/style/msg_thread.css new file mode 100644 index 00000000..b61ad141 --- /dev/null +++ b/tests_hugo/chat_nest/chat_client/style/msg_thread.css @@ -0,0 +1,4 @@ +.chat_box .chat_item .msg_box { + width: 100%; + border: 1px solid blue; +} diff --git a/tests_hugo/chat_nest/chat_client/style/msg_write.css b/tests_hugo/chat_nest/chat_client/style/msg_write.css new file mode 100644 index 00000000..47e2a667 --- /dev/null +++ b/tests_hugo/chat_nest/chat_client/style/msg_write.css @@ -0,0 +1,16 @@ +.chat_box .text_area { + position: absolute; + bottom: 0px; + left: 0px; + width: 100%; + height: auto; + min-height: 100%; + max-height: 300px; + /* + resize: none; + */ + overflow-x: hidden; + overflow-y: scroll; + background-color: white; + border: 1px solid red; +} diff --git a/tests_hugo/chat_nest/chat_server/.eslintrc.js b/tests_hugo/chat_nest/chat_server/.eslintrc.js new file mode 100644 index 00000000..8f5aedb7 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/.eslintrc.js @@ -0,0 +1,25 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + tsconfigRootDir : __dirname, + sourceType: 'module', + }, + plugins: ['@typescript-eslint/eslint-plugin'], + extends: [ + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + ], + root: true, + env: { + node: true, + jest: true, + }, + ignorePatterns: ['.eslintrc.js'], + rules: { + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + }, +}; diff --git a/tests_hugo/chat_nest/chat_server/.prettierrc b/tests_hugo/chat_nest/chat_server/.prettierrc new file mode 100644 index 00000000..dcb72794 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "trailingComma": "all" +} \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/README.md b/tests_hugo/chat_nest/chat_server/README.md new file mode 100644 index 00000000..00a13b11 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/README.md @@ -0,0 +1,73 @@ +

+ Nest Logo +

+ +[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 +[circleci-url]: https://circleci.com/gh/nestjs/nest + +

A progressive Node.js framework for building efficient and scalable server-side applications.

+

+NPM Version +Package License +NPM Downloads +CircleCI +Coverage +Discord +Backers on Open Collective +Sponsors on Open Collective + + Support us + +

+ + +## Description + +[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. + +## Installation + +```bash +$ npm install +``` + +## Running the app + +```bash +# development +$ npm run start + +# watch mode +$ npm run start:dev + +# production mode +$ npm run start:prod +``` + +## Test + +```bash +# unit tests +$ npm run test + +# e2e tests +$ npm run test:e2e + +# test coverage +$ npm run test:cov +``` + +## Support + +Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). + +## Stay in touch + +- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) +- Website - [https://nestjs.com](https://nestjs.com/) +- Twitter - [@nestframework](https://twitter.com/nestframework) + +## License + +Nest is [MIT licensed](LICENSE). diff --git a/tests_hugo/chat_nest/chat_server/dist/app.controller.d.ts b/tests_hugo/chat_nest/chat_server/dist/app.controller.d.ts new file mode 100644 index 00000000..b13b065f --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/app.controller.d.ts @@ -0,0 +1,3 @@ +export declare class AppController { + place_holder(): void; +} diff --git a/tests_hugo/chat_nest/chat_server/dist/app.controller.js b/tests_hugo/chat_nest/chat_server/dist/app.controller.js new file mode 100644 index 00000000..8a91fa93 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/app.controller.js @@ -0,0 +1,27 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppController = void 0; +const common_1 = require("@nestjs/common"); +let AppController = class AppController { + place_holder() { } +}; +__decorate([ + (0, common_1.Get)(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], AppController.prototype, "place_holder", null); +AppController = __decorate([ + (0, common_1.Controller)() +], AppController); +exports.AppController = AppController; +//# sourceMappingURL=app.controller.js.map \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/dist/app.controller.js.map b/tests_hugo/chat_nest/chat_server/dist/app.controller.js.map new file mode 100644 index 00000000..b5a0f3d7 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/app.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.controller.js","sourceRoot":"","sources":["../src/app.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AAG1C,IAAM,aAAa,GAAnB,MAAM,aAAa;IAExB,YAAY,KAAI,CAAC;CAClB,CAAA;AAFC;IAAC,IAAA,YAAG,GAAE;;;;iDACW;AAFN,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAGzB;AAHY,sCAAa"} \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/dist/app.module.d.ts b/tests_hugo/chat_nest/chat_server/dist/app.module.d.ts new file mode 100644 index 00000000..09cdb35c --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/app.module.d.ts @@ -0,0 +1,2 @@ +export declare class AppModule { +} diff --git a/tests_hugo/chat_nest/chat_server/dist/app.module.js b/tests_hugo/chat_nest/chat_server/dist/app.module.js new file mode 100644 index 00000000..96c73c63 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/app.module.js @@ -0,0 +1,20 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppModule = void 0; +const common_1 = require("@nestjs/common"); +const chat_gateway_1 = require("./chat.gateway"); +let AppModule = class AppModule { +}; +AppModule = __decorate([ + (0, common_1.Module)({ + providers: [chat_gateway_1.ChatGateway], + }) +], AppModule); +exports.AppModule = AppModule; +//# sourceMappingURL=app.module.js.map \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/dist/app.module.js.map b/tests_hugo/chat_nest/chat_server/dist/app.module.js.map new file mode 100644 index 00000000..9dead076 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/app.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,iDAA6C;AAKtC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IAHrB,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,0BAAW,CAAC;KACzB,CAAC;GACW,SAAS,CAAG;AAAZ,8BAAS"} \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/dist/app.service.d.ts b/tests_hugo/chat_nest/chat_server/dist/app.service.d.ts new file mode 100644 index 00000000..0496e790 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/app.service.d.ts @@ -0,0 +1,3 @@ +export declare class AppService { + getHello(): string; +} diff --git a/tests_hugo/chat_nest/chat_server/dist/app.service.js b/tests_hugo/chat_nest/chat_server/dist/app.service.js new file mode 100644 index 00000000..2b016862 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/app.service.js @@ -0,0 +1,20 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppService = void 0; +const common_1 = require("@nestjs/common"); +let AppService = class AppService { + getHello() { + return 'Hello World!'; + } +}; +AppService = __decorate([ + (0, common_1.Injectable)() +], AppService); +exports.AppService = AppService; +//# sourceMappingURL=app.service.js.map \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/dist/app.service.js.map b/tests_hugo/chat_nest/chat_server/dist/app.service.js.map new file mode 100644 index 00000000..b71e196f --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/app.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.service.js","sourceRoot":"","sources":["../src/app.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAGrC,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,QAAQ;QACN,OAAO,cAAc,CAAC;IACxB,CAAC;CACF,CAAA;AAJY,UAAU;IADtB,IAAA,mBAAU,GAAE;GACA,UAAU,CAItB;AAJY,gCAAU"} \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/dist/chat.gateway.d.ts b/tests_hugo/chat_nest/chat_server/dist/chat.gateway.d.ts new file mode 100644 index 00000000..45a0e61a --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/chat.gateway.d.ts @@ -0,0 +1,4 @@ +export declare class ChatGateway { + server: any; + handleMessage(message: string): void; +} diff --git a/tests_hugo/chat_nest/chat_server/dist/chat.gateway.js b/tests_hugo/chat_nest/chat_server/dist/chat.gateway.js new file mode 100644 index 00000000..3055310f --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/chat.gateway.js @@ -0,0 +1,43 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ChatGateway = void 0; +const websockets_1 = require("@nestjs/websockets"); +let ChatGateway = class ChatGateway { + handleMessage(message) { + console.log("message received:"); + console.log(`[${message}]`); + this.server.emit('message', message); + } +}; +__decorate([ + (0, websockets_1.WebSocketServer)(), + __metadata("design:type", Object) +], ChatGateway.prototype, "server", void 0); +__decorate([ + (0, websockets_1.SubscribeMessage)('message'), + __param(0, (0, websockets_1.MessageBody)()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [String]), + __metadata("design:returntype", void 0) +], ChatGateway.prototype, "handleMessage", null); +ChatGateway = __decorate([ + (0, websockets_1.WebSocketGateway)({ + cors: { + origin: '*', + }, + }) +], ChatGateway); +exports.ChatGateway = ChatGateway; +//# sourceMappingURL=chat.gateway.js.map \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/dist/chat.gateway.js.map b/tests_hugo/chat_nest/chat_server/dist/chat.gateway.js.map new file mode 100644 index 00000000..ae8aa119 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/chat.gateway.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chat.gateway.js","sourceRoot":"","sources":["../src/chat.gateway.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mDAK4B;AAOrB,IAAM,WAAW,GAAjB,MAAM,WAAW;IAKvB,aAAa,CAAgB,OAAe;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;CACD,CAAA;AATA;IAAC,IAAA,4BAAe,GAAE;;2CACX;AAEP;IAAC,IAAA,6BAAgB,EAAC,SAAS,CAAC;IACb,WAAA,IAAA,wBAAW,GAAE,CAAA;;;;gDAI3B;AATW,WAAW;IALvB,IAAA,6BAAgB,EAAC;QACjB,IAAI,EAAE;YACL,MAAM,EAAE,GAAG;SACX;KACD,CAAC;GACW,WAAW,CAUvB;AAVY,kCAAW"} \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/dist/main.d.ts b/tests_hugo/chat_nest/chat_server/dist/main.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/main.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/tests_hugo/chat_nest/chat_server/dist/main.js b/tests_hugo/chat_nest/chat_server/dist/main.js new file mode 100644 index 00000000..58cc36a0 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/main.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const core_1 = require("@nestjs/core"); +const app_module_1 = require("./app.module"); +async function bootstrap() { + const app = await core_1.NestFactory.create(app_module_1.AppModule); + await app.listen(3000); +} +bootstrap(); +//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/dist/main.js.map b/tests_hugo/chat_nest/chat_server/dist/main.js.map new file mode 100644 index 00000000..721361b2 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/main.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,6CAAyC;AAEzC,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;IAChD,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AACD,SAAS,EAAE,CAAC"} \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/dist/tsconfig.build.tsbuildinfo b/tests_hugo/chat_nest/chat_server/dist/tsconfig.build.tsbuildinfo new file mode 100644 index 00000000..ae529010 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/dist/tsconfig.build.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.es2017.full.d.ts","../node_modules/reflect-metadata/index.d.ts","../node_modules/@nestjs/common/cache/cache.constants.d.ts","../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts","../node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.d.ts","../node_modules/@nestjs/common/interfaces/controllers/controller.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts","../node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts","../node_modules/rxjs/dist/types/internal/Subscription.d.ts","../node_modules/rxjs/dist/types/internal/Subscriber.d.ts","../node_modules/rxjs/dist/types/internal/Operator.d.ts","../node_modules/rxjs/dist/types/internal/Observable.d.ts","../node_modules/rxjs/dist/types/internal/types.d.ts","../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../node_modules/rxjs/dist/types/internal/operators/auditTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferCount.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferToggle.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/catchError.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineLatestAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineLatest.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineLatestWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatMapTo.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../node_modules/rxjs/dist/types/internal/operators/debounceTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/defaultIfEmpty.d.ts","../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../node_modules/rxjs/dist/types/internal/operators/delayWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinctUntilChanged.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinctUntilKeyChanged.d.ts","../node_modules/rxjs/dist/types/internal/operators/elementAt.d.ts","../node_modules/rxjs/dist/types/internal/operators/endWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaustAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaustMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../node_modules/rxjs/dist/types/internal/operators/findIndex.d.ts","../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../node_modules/rxjs/dist/types/internal/Subject.d.ts","../node_modules/rxjs/dist/types/internal/operators/groupBy.d.ts","../node_modules/rxjs/dist/types/internal/operators/ignoreElements.d.ts","../node_modules/rxjs/dist/types/internal/operators/isEmpty.d.ts","../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../node_modules/rxjs/dist/types/internal/operators/mapTo.d.ts","../node_modules/rxjs/dist/types/internal/Notification.d.ts","../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/flatMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeMapTo.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeScan.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../node_modules/rxjs/dist/types/internal/observable/ConnectableObservable.d.ts","../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../node_modules/rxjs/dist/types/internal/operators/observeOn.d.ts","../node_modules/rxjs/dist/types/internal/operators/onErrorResumeNext.d.ts","../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishBehavior.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishLast.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishReplay.d.ts","../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../node_modules/rxjs/dist/types/internal/operators/raceWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../node_modules/rxjs/dist/types/internal/operators/repeatWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../node_modules/rxjs/dist/types/internal/operators/retryWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/refCount.d.ts","../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../node_modules/rxjs/dist/types/internal/operators/sampleTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../node_modules/rxjs/dist/types/internal/operators/sequenceEqual.d.ts","../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../node_modules/rxjs/dist/types/internal/operators/shareReplay.d.ts","../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../node_modules/rxjs/dist/types/internal/operators/skipLast.d.ts","../node_modules/rxjs/dist/types/internal/operators/skipUntil.d.ts","../node_modules/rxjs/dist/types/internal/operators/skipWhile.d.ts","../node_modules/rxjs/dist/types/internal/operators/startWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/subscribeOn.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchMapTo.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchScan.d.ts","../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../node_modules/rxjs/dist/types/internal/operators/takeLast.d.ts","../node_modules/rxjs/dist/types/internal/operators/takeUntil.d.ts","../node_modules/rxjs/dist/types/internal/operators/takeWhile.d.ts","../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../node_modules/rxjs/dist/types/internal/operators/throttleTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/throwIfEmpty.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeInterval.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeoutWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../node_modules/rxjs/dist/types/internal/operators/toArray.d.ts","../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowCount.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowToggle.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/withLatestFrom.d.ts","../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../node_modules/rxjs/dist/types/internal/operators/zipAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/zipWith.d.ts","../node_modules/rxjs/dist/types/operators/index.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/Action.d.ts","../node_modules/rxjs/dist/types/internal/Scheduler.d.ts","../node_modules/rxjs/dist/types/internal/testing/TestMessage.d.ts","../node_modules/rxjs/dist/types/internal/testing/SubscriptionLog.d.ts","../node_modules/rxjs/dist/types/internal/testing/SubscriptionLoggable.d.ts","../node_modules/rxjs/dist/types/internal/testing/ColdObservable.d.ts","../node_modules/rxjs/dist/types/internal/testing/HotObservable.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AsyncScheduler.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/timerHandle.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AsyncAction.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/VirtualTimeScheduler.d.ts","../node_modules/rxjs/dist/types/internal/testing/TestScheduler.d.ts","../node_modules/rxjs/dist/types/testing/index.d.ts","../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../node_modules/rxjs/dist/types/internal/observable/dom/animationFrames.d.ts","../node_modules/rxjs/dist/types/internal/BehaviorSubject.d.ts","../node_modules/rxjs/dist/types/internal/ReplaySubject.d.ts","../node_modules/rxjs/dist/types/internal/AsyncSubject.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AsapScheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/QueueScheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AnimationFrameScheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/animationFrame.d.ts","../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../node_modules/rxjs/dist/types/internal/util/isObservable.d.ts","../node_modules/rxjs/dist/types/internal/lastValueFrom.d.ts","../node_modules/rxjs/dist/types/internal/firstValueFrom.d.ts","../node_modules/rxjs/dist/types/internal/util/ArgumentOutOfRangeError.d.ts","../node_modules/rxjs/dist/types/internal/util/EmptyError.d.ts","../node_modules/rxjs/dist/types/internal/util/NotFoundError.d.ts","../node_modules/rxjs/dist/types/internal/util/ObjectUnsubscribedError.d.ts","../node_modules/rxjs/dist/types/internal/util/SequenceError.d.ts","../node_modules/rxjs/dist/types/internal/util/UnsubscriptionError.d.ts","../node_modules/rxjs/dist/types/internal/observable/bindCallback.d.ts","../node_modules/rxjs/dist/types/internal/observable/bindNodeCallback.d.ts","../node_modules/rxjs/dist/types/internal/AnyCatcher.d.ts","../node_modules/rxjs/dist/types/internal/observable/combineLatest.d.ts","../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../node_modules/rxjs/dist/types/internal/observable/forkJoin.d.ts","../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../node_modules/rxjs/dist/types/internal/observable/fromEvent.d.ts","../node_modules/rxjs/dist/types/internal/observable/fromEventPattern.d.ts","../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../node_modules/rxjs/dist/types/internal/observable/onErrorResumeNext.d.ts","../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../node_modules/rxjs/dist/types/internal/observable/throwError.d.ts","../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../node_modules/rxjs/dist/types/internal/config.d.ts","../node_modules/rxjs/dist/types/index.d.ts","../node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.d.ts","../node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/validation-error.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/paramtype.interface.d.ts","../node_modules/@nestjs/common/interfaces/type.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts","../node_modules/@nestjs/common/enums/request-method.enum.d.ts","../node_modules/@nestjs/common/enums/http-status.enum.d.ts","../node_modules/@nestjs/common/enums/shutdown-signal.enum.d.ts","../node_modules/@nestjs/common/enums/version-type.enum.d.ts","../node_modules/@nestjs/common/enums/index.d.ts","../node_modules/@nestjs/common/interfaces/version-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/nest-middleware.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/index.d.ts","../node_modules/@nestjs/common/interfaces/global-prefix-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/before-application-shutdown.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-application-bootstrap.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-application-shutdown.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-destroy.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-init.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/index.d.ts","../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/https-options.interface.d.ts","../node_modules/@nestjs/common/services/logger.service.d.ts","../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/http-server.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/message-event.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/raw-body-request.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/index.d.ts","../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts","../node_modules/@nestjs/common/interfaces/microservices/nest-hybrid-application-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.d.ts","../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/injection-token.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/optional-factory-dependency.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/provider.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/nest-module.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/index.d.ts","../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts","../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts","../node_modules/@nestjs/common/interfaces/nest-application.interface.d.ts","../node_modules/@nestjs/common/interfaces/nest-microservice.interface.d.ts","../node_modules/@nestjs/common/interfaces/index.d.ts","../node_modules/@nestjs/common/module-utils/constants.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/configurable-module-async-options.interface.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/configurable-module-cls.interface.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/configurable-module-host.interface.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/index.d.ts","../node_modules/@nestjs/common/module-utils/configurable-module.builder.d.ts","../node_modules/@nestjs/common/module-utils/index.d.ts","../node_modules/@nestjs/common/cache/interfaces/cache-manager.interface.d.ts","../node_modules/@nestjs/common/cache/interfaces/cache-module.interface.d.ts","../node_modules/@nestjs/common/cache/cache.module-definition.d.ts","../node_modules/@nestjs/common/cache/cache.module.d.ts","../node_modules/@nestjs/common/decorators/core/bind.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/catch.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/controller.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/dependencies.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/exception-filters.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/inject.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/injectable.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/optional.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/set-metadata.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/use-guards.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/use-pipes.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/apply-decorators.d.ts","../node_modules/@nestjs/common/decorators/core/version.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/index.d.ts","../node_modules/@nestjs/common/decorators/modules/global.decorator.d.ts","../node_modules/@nestjs/common/decorators/modules/module.decorator.d.ts","../node_modules/@nestjs/common/decorators/modules/index.d.ts","../node_modules/@nestjs/common/decorators/http/request-mapping.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/route-params.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/http-code.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/render.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/header.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/redirect.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/sse.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/index.d.ts","../node_modules/@nestjs/common/decorators/index.d.ts","../node_modules/@nestjs/common/cache/decorators/cache-key.decorator.d.ts","../node_modules/@nestjs/common/cache/decorators/cache-ttl.decorator.d.ts","../node_modules/@nestjs/common/cache/decorators/index.d.ts","../node_modules/@nestjs/common/cache/interceptors/cache.interceptor.d.ts","../node_modules/@nestjs/common/cache/interceptors/index.d.ts","../node_modules/@nestjs/common/cache/interfaces/index.d.ts","../node_modules/@nestjs/common/cache/index.d.ts","../node_modules/@nestjs/common/exceptions/http.exception.d.ts","../node_modules/@nestjs/common/exceptions/bad-request.exception.d.ts","../node_modules/@nestjs/common/exceptions/unauthorized.exception.d.ts","../node_modules/@nestjs/common/exceptions/method-not-allowed.exception.d.ts","../node_modules/@nestjs/common/exceptions/not-found.exception.d.ts","../node_modules/@nestjs/common/exceptions/forbidden.exception.d.ts","../node_modules/@nestjs/common/exceptions/not-acceptable.exception.d.ts","../node_modules/@nestjs/common/exceptions/request-timeout.exception.d.ts","../node_modules/@nestjs/common/exceptions/conflict.exception.d.ts","../node_modules/@nestjs/common/exceptions/gone.exception.d.ts","../node_modules/@nestjs/common/exceptions/payload-too-large.exception.d.ts","../node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.d.ts","../node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.d.ts","../node_modules/@nestjs/common/exceptions/internal-server-error.exception.d.ts","../node_modules/@nestjs/common/exceptions/not-implemented.exception.d.ts","../node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.d.ts","../node_modules/@nestjs/common/exceptions/bad-gateway.exception.d.ts","../node_modules/@nestjs/common/exceptions/service-unavailable.exception.d.ts","../node_modules/@nestjs/common/exceptions/gateway-timeout.exception.d.ts","../node_modules/@nestjs/common/exceptions/im-a-teapot.exception.d.ts","../node_modules/@nestjs/common/exceptions/precondition-failed.exception.d.ts","../node_modules/@nestjs/common/exceptions/misdirected.exception.d.ts","../node_modules/@nestjs/common/exceptions/index.d.ts","../node_modules/@nestjs/common/file-stream/streamable-options.interface.d.ts","../node_modules/@nestjs/common/file-stream/streamable-file.d.ts","../node_modules/@nestjs/common/file-stream/index.d.ts","../node_modules/@nestjs/common/pipes/default-value.pipe.d.ts","../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/transformer-package.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/validator-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/validator-package.interface.d.ts","../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts","../node_modules/@nestjs/common/pipes/validation.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-array.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-bool.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-int.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-float.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-enum.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-uuid.pipe.d.ts","../node_modules/@nestjs/common/pipes/file/file-validator.interface.d.ts","../node_modules/@nestjs/common/pipes/file/file-type.validator.d.ts","../node_modules/@nestjs/common/pipes/file/max-file-size.validator.d.ts","../node_modules/@nestjs/common/pipes/file/parse-file-options.interface.d.ts","../node_modules/@nestjs/common/pipes/file/parse-file.pipe.d.ts","../node_modules/@nestjs/common/pipes/file/parse-file-pipe.builder.d.ts","../node_modules/@nestjs/common/pipes/file/index.d.ts","../node_modules/@nestjs/common/pipes/index.d.ts","../node_modules/@nestjs/common/serializer/class-serializer.interfaces.d.ts","../node_modules/@nestjs/common/serializer/class-serializer.interceptor.d.ts","../node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.d.ts","../node_modules/@nestjs/common/serializer/decorators/index.d.ts","../node_modules/@nestjs/common/serializer/index.d.ts","../node_modules/@nestjs/common/services/console-logger.service.d.ts","../node_modules/@nestjs/common/services/index.d.ts","../node_modules/@nestjs/common/utils/forward-ref.util.d.ts","../node_modules/@nestjs/common/utils/index.d.ts","../node_modules/@nestjs/common/index.d.ts","../src/app.controller.ts","../node_modules/@nestjs/websockets/adapters/ws-adapter.d.ts","../node_modules/@nestjs/websockets/adapters/index.d.ts","../node_modules/@nestjs/websockets/decorators/connected-socket.decorator.d.ts","../node_modules/@nestjs/websockets/decorators/gateway-server.decorator.d.ts","../node_modules/@nestjs/websockets/decorators/message-body.decorator.d.ts","../node_modules/@nestjs/websockets/interfaces/gateway-metadata.interface.d.ts","../node_modules/@nestjs/websockets/interfaces/hooks/on-gateway-connection.interface.d.ts","../node_modules/@nestjs/websockets/interfaces/hooks/on-gateway-disconnect.interface.d.ts","../node_modules/@nestjs/websockets/interfaces/hooks/on-gateway-init.interface.d.ts","../node_modules/@nestjs/websockets/interfaces/hooks/index.d.ts","../node_modules/@nestjs/websockets/interfaces/server-and-event-streams-host.interface.d.ts","../node_modules/@nestjs/websockets/interfaces/web-socket-server.interface.d.ts","../node_modules/@nestjs/websockets/interfaces/ws-response.interface.d.ts","../node_modules/@nestjs/websockets/interfaces/index.d.ts","../node_modules/@nestjs/websockets/decorators/socket-gateway.decorator.d.ts","../node_modules/@nestjs/websockets/decorators/subscribe-message.decorator.d.ts","../node_modules/@nestjs/websockets/decorators/index.d.ts","../node_modules/@nestjs/websockets/errors/ws-exception.d.ts","../node_modules/@nestjs/websockets/errors/index.d.ts","../node_modules/@nestjs/websockets/exceptions/base-ws-exception-filter.d.ts","../node_modules/@nestjs/websockets/exceptions/index.d.ts","../node_modules/@nestjs/core/metadata-scanner.d.ts","../node_modules/@nestjs/websockets/interfaces/nest-gateway.interface.d.ts","../node_modules/@nestjs/websockets/gateway-metadata-explorer.d.ts","../node_modules/@nestjs/websockets/index.d.ts","../src/chat.gateway.ts","../src/app.module.ts","../node_modules/@nestjs/core/adapters/http-adapter.d.ts","../node_modules/@nestjs/core/adapters/index.d.ts","../node_modules/@nestjs/core/injector/module-token-factory.d.ts","../node_modules/@nestjs/core/injector/compiler.d.ts","../node_modules/@nestjs/core/injector/modules-container.d.ts","../node_modules/@nestjs/core/injector/container.d.ts","../node_modules/@nestjs/core/injector/injector.d.ts","../node_modules/@nestjs/core/injector/instance-links-host.d.ts","../node_modules/@nestjs/core/injector/abstract-instance-resolver.d.ts","../node_modules/@nestjs/core/injector/module-ref.d.ts","../node_modules/@nestjs/core/injector/module.d.ts","../node_modules/@nestjs/core/injector/instance-wrapper.d.ts","../node_modules/@nestjs/core/router/interfaces/exclude-route-metadata.interface.d.ts","../node_modules/@nestjs/core/application-config.d.ts","../node_modules/@nestjs/core/constants.d.ts","../node_modules/@nestjs/core/discovery/discovery-module.d.ts","../node_modules/@nestjs/core/discovery/discovery-service.d.ts","../node_modules/@nestjs/core/discovery/index.d.ts","../node_modules/@nestjs/core/helpers/http-adapter-host.d.ts","../node_modules/@nestjs/core/exceptions/base-exception-filter.d.ts","../node_modules/@nestjs/core/exceptions/index.d.ts","../node_modules/@nestjs/core/helpers/context-id-factory.d.ts","../node_modules/@nestjs/core/helpers/index.d.ts","../node_modules/@nestjs/core/injector/inquirer/inquirer-constants.d.ts","../node_modules/@nestjs/core/injector/inquirer/index.d.ts","../node_modules/@nestjs/core/scanner.d.ts","../node_modules/@nestjs/core/injector/instance-loader.d.ts","../node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader-options.interface.d.ts","../node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader.d.ts","../node_modules/@nestjs/core/injector/index.d.ts","../node_modules/@nestjs/core/middleware/routes-mapper.d.ts","../node_modules/@nestjs/core/middleware/builder.d.ts","../node_modules/@nestjs/core/middleware/index.d.ts","../node_modules/@nestjs/core/nest-application-context.d.ts","../node_modules/@nestjs/core/nest-application.d.ts","../node_modules/@nestjs/common/interfaces/microservices/nest-microservice-options.interface.d.ts","../node_modules/@nestjs/core/nest-factory.d.ts","../node_modules/@nestjs/core/repl/repl.d.ts","../node_modules/@nestjs/core/repl/index.d.ts","../node_modules/@nestjs/core/router/interfaces/routes.interface.d.ts","../node_modules/@nestjs/core/router/interfaces/index.d.ts","../node_modules/@nestjs/core/router/request/request-constants.d.ts","../node_modules/@nestjs/core/router/request/index.d.ts","../node_modules/@nestjs/core/router/router-module.d.ts","../node_modules/@nestjs/core/router/index.d.ts","../node_modules/@nestjs/core/services/reflector.service.d.ts","../node_modules/@nestjs/core/services/index.d.ts","../node_modules/@nestjs/core/index.d.ts","../src/main.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/@types/connect/index.d.ts","../node_modules/@types/body-parser/index.d.ts","../node_modules/@types/cookie/index.d.ts","../node_modules/@types/cookiejar/index.d.ts","../node_modules/@types/cors/index.d.ts","../node_modules/@types/eslint/helpers.d.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/eslint/index.d.ts","../node_modules/@types/eslint-scope/index.d.ts","../node_modules/@types/range-parser/index.d.ts","../node_modules/@types/qs/index.d.ts","../node_modules/@types/express-serve-static-core/index.d.ts","../node_modules/@types/mime/Mime.d.ts","../node_modules/@types/mime/index.d.ts","../node_modules/@types/serve-static/index.d.ts","../node_modules/@types/express/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/@jest/expect-utils/build/index.d.ts","../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../node_modules/@sinclair/typebox/typebox.d.ts","../node_modules/@jest/schemas/build/index.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/expect/build/index.d.ts","../node_modules/@types/jest/index.d.ts","../node_modules/@types/parse-json/index.d.ts","../node_modules/@types/prettier/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/buffer/index.d.ts","../node_modules/@types/superagent/index.d.ts","../node_modules/@types/supertest/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"d2f31f19e1ba6ed59be9259d660a239d9a3fcbbc8e038c6b2009bde34b175fed",{"version":"8d6d51a5118d000ed3bfe6e1dd1335bebfff3fef23cd2af2f84a24d30f90cc90","affectsGlobalScope":true},"3284e33a45d6aa8324691ac5737d08695e35e99b5f69fdc9ef21b3c7e7fd8449","e89535c3ec439608bcd0f68af555d0e5ddf121c54abe69343549718bd7506b9c","622a984b60c294ffb2f9152cf1d4d12e91d2b733d820eec949cf54d63a3c1025","1a25c4d02a013b4690efa24ab48184a2c10b1906a379565ba558b2c3ba679a6d","ba6f9c5491bcf018dbbc813e1dd488beb26f876b825007ba76db485df341a8ee","75b57b109d774acca1e151df21cf5cb54c7a1df33a273f0457b9aee4ebd36fb9","fa3d0cd03fa17459d9ddd98b120b4bb084da39f0391cbdce480a6ef74be0cc7a","e3fd84e6470b7e0679c4073ee5ce971d324182486dde5a49b67cae29168b51d2","dd8331d0a5190a4735ce6c152e420230188c4966067a756673c36dd7ba72b10e","cfdf36cfc0721c29f58651fc12f0f5a349d29da3a63180afc5b3d77b95653f82",{"version":"d57e7ff5243e0dcd04cf2edf9ad9520af40edd6eba31c14c3f405f0c437fa379","affectsGlobalScope":true},"0f882d4ae58f431454030289154feb0132e1b00ca5c3197c6b749bd098aed73a","7ff7f4632a6e7b6872fb1843f3c0df495b49840eae2a23c6fbc943f863da8c29","d267771149e172ade39e3ef96b4063209d5a7e8291702fe03983aa52f2b3d5f6","a78590b0efcef281236e3234520c348d63be1d4561b63b20e6c3b6fc18b37dfb","4d59c6a10b6c79a0927c79efa89b3c9f71d174ec14ec2792076cfd2330d0cf8e","a496f51933422872de22729b7a0233589325a1a1707cccd05cd914098944a202","75b6663bc569724017997481b6b3774065c204b316cb4f5ad7df3b5162d2dce1","06a38095ad4368314366bc08f7cbc0fe274ef7321ec611005d0bdd9c6565e4d5","4599793db9aed9b84677f0ca1cf7ef3c69bb91cda4fe4329cbab778ca4d80a58","ad0028f96921778931fb8419d8de33b10908314fa99699de1702020f69235da1","ccd2a35321c0786bd3808042dc43b960cac13f2cc660ac37a0087e12bc97d2fc","df524ed01de4f19efb44bded628dbba9f840148be4b6cfe096e29d4b01589de3","2e3981b9cee48174ff85ae15019fd72933f7023a4ed05094740f7e6f7775623c","836ebdc3b9e4c006acc4f405b7e558e56d47830e05c40d991b1e27fe8bc91157","2cc6b617c6120ba64b5778ccd4b74c951adc3a3941bb6b39f47d48701c44af39","eca02b99615a8f1652e21399d832618e38bf166c0747c9247349bc901a2f7741","7f7d6d42e5780e86f5b860a6f95179fae06a368b3af28c1c4230397c47021a59","4740a7d11ab3b381be0f269f1903fb3ff226a2fba55a01756b2997e67cd853f2","863dbc4e77f0353e6f9d6bc0e2b4622d5c07ff6f099ff66cafd7924b2ff4dd3f","bf034a18ed7e2a058f9e48c4c2480a124138fbd3586a80c77736a9ec079d12a8","f88758992a0bf13d095520aacd4381fb456ff121fb9aa184e6eb0eecb26cfadc","c249e9ae33bfcad97deec3c73c9ed2656e112fbdf22deace0b39724be6a5dcf0","d8b45924965c0c4fc0b946c0b6d597aa8d5de9cdf5c727e3d39422d17efec438","d07ea953cfea0c4bd11641912846bd955f4fd26ad2b7b8a279d69c7ab9cb3add","feddabf6ab0eb191e721f0126f3db8688db97c77a1234968bde7a2d70c4ae513","dbbda62ea5f4d1f8b40cc2b7e2e2fae424abbb4715a04a3659cb8b317f7b228b","cde0568b836865a24f4ee5859462004a326dfb76d514e6f56c8e78feedebed58","7f5cb3a03588ed46d52a6c2138315d930cd6ffb5c2134247cd07bc23cbea0b5a","7797f4c91491dcb0f21fa318fd8a1014990d5a72f8a32de2af06eb4d4476a3b5","f39fb20b83c3f9853c13d4ac95533760979d3023c0a5affe2c0a62d91ab3afd8","e4fca08aed8afb32bb8643d7469810bc8681115fe398e56a028df9e73b2d867f","2622639d24718ddfccc33a9a6daf5a2dd94d540ca41e3da00fe365d2c3f25db3","078966067552650f44ca96c68eddbb8539f30ee48a9ab3f24abdcf0a4037b535","2cd6250c43dba360377481c98d48db6ab1532a7527339edb0deffddc28ba66b1","7a9d600990fbe263a23daebed9ba1bbc5761e45679a7e2b2774a42756ef077a2","66bc155515fbea8c31a4efccbbac44de7c037b01f3aa00b76312cf7252725d30","5703288ddbfc4f7845cdbf80c6af17c8cde2a228757479796c2378b1662fcd48","0dfd353f0c16dd5107a7e0713dc52d0a2538293b0a0eac6000a017f9c0a60b56","9cd683a4663ef4d9c6486f1b8a34c73bdbc344d69490931bfe2fbcada12ab35b","42f6a409bad5259ece69df25d2b8ace2ff2ade45fe6386ee45203bdd9329f971","d3b1a8b87a5e77d70056325e137a0e04d984b991546fdd3c1034ff4102d603c4","2eb162efd6dba5972b9f8f85141d900d09da4fba23864f287f98f9890a05e95f","3f878fb5be9ebe8bd0ac5c22515d42b8b72d3745ef7617e73e9b2548ccbdf54b","e9ed562b7599c8c8c01595891480a30f9945a93a46456d22ee67ebf346b7538a","e7bf975a98cecefe2e8902fb7da9314675ecdce553aea722aaec97327668e18b","3d36f93648518338c875d9f77a8eab52905365483dbb3afe43ed68f1b712b67c","4fa54df9184d291bd78b36f5063372042cd995460e906cb14014e40d1442a326","b4e32bd5e3b493e4ea6b5ec69a4c02aa1fdaa78e1df9a863bb07604de8f9d123","f6bd1aa152ca2b5064e06282ee3137842ae6825b6b09aa89a2ff063b976a56f3","bce2390bb3a76f8bf2ba4397c66db5277bf3e698ee614347e5eb79d7fc0942c6","fbdc8d7cc7daf4101bf567512c67fb990d8fe300e0ba7f213171192177f44aa0","298e0da6d858e39fc0c1eebfa4f5c8af487868c6f2e98c3ef800537d402fb5c3","3b6457fb3866562d279377f923cf3758c80ed7bfcc19414b72a24d0a98188e0c","4fb5d7efb3520b92c1b767ce18968057c5e70886d7fb3416c487231df9275af9","df2303a61eb57b2717d17123e82bc0f3fd60f6e4673cb5506192dfe23c9480bf","b104960f4c5f807535ab43282356b2fe29c5d14a02035c623ac2012be3d5f76c","a35ca245eb852b70b20300546443abb1fcbac6e5066e4baaa092af4ea614d9b5","55da140feab55f10a538a9879a97c4be3df4934cbd679665c91a7263a86095e1","1a39e51e3362aec7d4edec9b317ff83916fe0471f86ddf2d3ef3af5952e87d9e","4b3f36b96f129a8e125c91d41a05f711e73b3285f80bceb3a1aecb13c97c4502","852779920fc4220bc42ec6d3c9b6164e23ea9371a788531b48b4005fe0cb4392","9a82e1b959524c1abfeeb024ee1a400234130a341f2b90a313ce4e37833b7dd2","515b97cede17d91c9669cc1c7fb7a8a5f0a5f2d8999f925a5f70b4ebea93723e","08e8e57241f874bdbf69ab2b65cb0ee18b4183d5c9452937da49b934fc679c4b","944af466f063d4bd090ab9d988c620b90a014e919d5f78963f6074a136ea225e","644addd4811636da491c9546654bc005ba8599f23df6d731d91eba86f3137fc2","a9249493114b181814728cbfeb7234738193a4169b654ec4705d48d7a4d25222","aad6f20d6eb01192ae02294361faa6e1f320d72447b56f433db853bbe80b15ca","876fbedec2f494eb6f834ce8636b07d581c657d205d81a3ba894eff0facc6b84","58527aa45f11c9b259a6a9d78b397f35020bfbb104f4d3bb177039b5c18146bd","91b8b61d45b5d22f3458a4ac82e03b464a0926bab795a920fe0eca805ec476eb","2744532f8fb960eb78497ac660db719f503a10c801f87131d26fd9cbef75dcef","6884287c54891ac19cfbe056f3ed29cab1732a00dec69bd3b140ce62c11783c6","abc3487041159734b8611d9d6fd85de6892f11ebe8c2583baedfc1f87c53757c","cb46657d3237f80742d5701ebcced8f6e5cf8938442354387d6c77d7048dfae6","76281a3b799bbd17ec8e6de7d2fa45ccf749049fd53f00857daf0dbc449616b8","661f322e45545a554e4ffc38db6c4068a66e1323baf66acb0d8a9fa28195a669","91d70dce48c2a2bb55f0b851cf1bdba4202f107f1e8fdf45f94ff6be4b8e8f99","ce978e20a6f26f606b535f0d6deb384ae6a73f8d0bd0dfca0925f5317cad1f25","f2d3567210ca4d559d8297d6c4402599c93e3bc7485054192d38db5e132fbc0a","887d8058aeeade45984fdb8696147078bc630d3fea15ab2b7baacde0fe281fb7","ad27aa59d346179ac449bd3077d245f213152879e4027356306ccf1722d61d51","ea546a7ed9eaa71ba78d4d392509dadea4bafed283269dd6c4b09e7d8824e986","4ec0f2a141a9ae7d3557b8efe630ac2021bc3a9ac61238b59293f4cf2f196e82","b2db743c71652e03c52d51445af58d0af3316231faa92b66018b29c7ba975f6c","0863a5876c85fbaffbb8ec8aeda8b5042deb6932616139706d2b82cde9d3f7c7","1294b8ecdd212362323f349dd83b5c94ea77bfee4dad24fc290980a3c8af6ce3","ba9c46725e2a0bd9df59d3a1e801cc60f90db3ef7817131c53945dce2b8c0c56","281d373eeabf80c4851f8de991e6abe4d385c30379d80897bbc3df3dcac99cee","624c5dce95672d9dcca40d9d9d82ef855f5f902292f43aa265cc8fd963c6ce84","8a48d9c6184992d1c3ed5daa55f83d708c37582916926a5555a900608f804b60","605dd288c636cf9b5317fe76dec75d3c7fb855fdcd3ee8cb4fea7d7091ca6fb4","95addea67857d4e568a02e429b15458cec203876b2ea5f5ea18ccfeeb91b8ce0","b5a615b0ad865ffa562980a10bda162ac1744fd363b4edc2cfc664222071cbcf","bbccd721363897950a55ce09529503f25a69522e5c91a22679b66e941e5f8654","d3a1e70795c38d7851b6e4f3b441c5ffdae171d6e2576a2204b7d79059aeea66","d7b8d41887c5fccfe19802c4336d34348b752abf0d98839575699d71deff60be","063fe3004728b8516a4d799ee16f9a71801ba24e0443dd98638cef1bd4353a7c","b8a0236f47d9037efdaf93da602415ae425dababe097fc92f83fd47ce9aaa69f","fab7912fc3ff45fce2f5d5febc9494c4d0a85d6c63fff68f21e4669c32eaacb9","f6c3fcb9d75d8aea778236fd9327ceb935b41865dbf3beac698be77e0ae9018d","b20bc124abd8ee572d0d756713ff987b116cdae908a6fcbc40e80d4b999f56b4","a599f3f450ad62c3fdc0c3fd25cddcc9332ffb44327087947d48914a8da81364","645dff895168aa82350c9aa60aa0b3621b84289fef043be842f45a9c6c0ac6e2","f068ff5b7fb3bdc5380e0c677e21de829bd25cdac63a9b083fdc220fcb225280","09d2fdca6ea6c135897a26976ad3c0db724adaf23ef4e38ad852b1d8efef1ae6","15de5b7739bf7e40213a200853bf78455ee5958af08eda786605a54a7f25ade6","f3acb439e08f0c2c78c712a876dc6c2080302c46916f1d63b7dbe509616ce9ae","37862e711637ebd927907a82cbf0143ea30e95eb165df554926c43936b1d77a9","89e253db2c2cc9a510c521f14dd2b1aae4de2556ee5159ad8d118d3587e3a880","3d0a172cee184a0f4111a7bd7fbb8729af3f54b30c06a2677d85c20ea9c811ab","d6a07e5e8dee6dc63c7ecd9c21756babf097e1537fbc91ddfec17328a063f65d","6fdc88b1287c276b55b7f7c4c7b49587813c763eea9751ce0baf0a7e61cd5d89","6a02443704052768bd021f24783aa104b02ae4444e9b735317bf13c6b857a11e","37987b0fe9800cf25473c882ce07bccdab2763c5681c1a2d16816aead46aa8d1","c84c03c721154068e1a60d83e9e85819bd3ef70b824ac2edc498aa31c06e5781","c23a403716784b53cf6ce9ffff9dcdb959b7cacdf115294a3377d96b6df1e161","c96fb6a0c1e879f95634ab0ff439cbb6fff6227b26bbf0153bef9ed0aabba60d","db936079fe6396aad9bf7ad0479ffc9220cec808a26a745baebb5f9e2ef9dbc7","06bc0b9cc7bf0b92534f1517fe5adde1f23f60cc6cc5c59f8e1c65db48a40067","919a753b0cbb12ccc606c62e2d34884d75a48ba19b1dda497c72621b11dac088","2c27e33ee0bf722988da00abd582cc9b806ce3fd9153a864800a339ad13f3fcf","92d7b3a5aa5dc872e54cbad2a7094b3ea4f72c7901de1d07b4c334ff658297f0","7a52922b38e9686d5bdc6e75774929eec6688d26c1dfe4a03ddec77ede468e87","aa5efca2833d89b55248f1889a6433dab1b1f41768e9a75f8ce35f9bf56c5ec4","4911d4c3a7f7c11bad0e2cec329a19a385d10ea83b0b69c76e032359e388f624","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"4f6463a60e5754bbc4a864b2aaf8fecb7706b96a21b88f27b534589b801978b6","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"4ffef5c4698e94e49dcf150e3270bad2b24a2aeab48b24acbe7c1366edff377d","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","67a12e6c992d3f770078bacc562f767cf6142ae4453759a482f8f5ed30a99027","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","c993aac3b6d4a4620ef9651497069eb84806a131420e4f158ea9396fb8eb9b8c","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","06ccebc2c2db57d6bdbca63b71c4ae5e6ddc42d972fd8f122d4c1a28aa111b25",{"version":"81e8508d1e82278f5d3fee936f267e00c308af36219bfcee2631f9513c9c4017","affectsGlobalScope":true},"413a4be7f94f631235bbc83dad36c4d15e5a2ff02bca1efdbd03636d6454631b","20c468256fd68d3ef1fa53526e76d51d6aa91711e84d72c0343589b99238287e","4198acced75d48a039c078734c4efca7788ff8c78609c270a2b63ec20e3e1676","8d4c16a26d59e3ce49741a7d4a6e8206b884e226cf308667c7778a0b2c0fee7f","ee3bad055a79f188626b1a7046f04ab151fdd3581e55c51d32face175bd9d06f","d61c7c41eb1960b1285e242fd102c162b65c0522985b839fadda59874308a170",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"1805e0e4d1ed00f6361db25dff6887c7fa9b5b39f32599a34e8551da7daaa9c2","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","fb0989383c6109f20281b3d31265293daefdd76d0d30551782c1654e93704f48","a4210a84a82b3e7a8cec5b2f3616e46d523f4f10cc1576d8f2fb89d0987b341e",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","22d48bfb37261136423ac687f1fa7bd4dda3083f767416d409a8260cf92bc8fc","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","95518ff86843e226b62a800f679f6968ad8dac8ccbe30fbfe63de3afb13761a2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","698ab660b477b9c2cd5ccbd99e7e7df8b4a6134c1f5711fa615ed7aab51cb7f7","33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637","a4471d2bdba495b2a6a30b8765d5e0282fa7009d88345a9528f73c37869d3b93",{"version":"aee7013623e7632fba449d4df1da92925b27d9b816cb05546044dbfe54c88ef4","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","c9d70d3d7191a66a81cb554557f8ed1cf736ea8397c44a864fe52689de18865a","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"1aad825534c73852a1f3275e527d729a2c0640f539198fdfdfeb83b839851910","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"88003d9ab15507806f41b120be6d407c1afe566c2f6689ebe3a034dd5ec0c8dc","3da085d344bf625767c5b1fcada31a5d94ebefc4e36bf18a676ca37460bc4e4e","006855ddea8674d084173a768f88519dc154be94eba5e2120262a33709832b9b","17dd843a266f99ca4b3a1257538bd1cc69dc5c7f2f23c3891f0430615b8c9c1c","5430364886c721a30475253356162b6c27871718094cb3e69e2bcea71a17e533","1218398da7c8dc4add10bdb3aa2856aad54b123d847eaf574d1d694ac269bfb5","189014f3213ee7457dbeea04dca10ca5d9ed2062cd39641aca5f3b4c75de9d99","b637cd92688a6cdf4f8f184ff529dc2bc7f15692828e2c0c66a60e6972f400c7","7061e83d6792897077bcac039fccf7325234004769f591c63a8cf8478bf551bb","7ab905865063322f2bba361d0f2ef93520f64a382bac13b127479860ad99f62e","277a358d61376fce7ac3392402909c96cf6a0a613146549fc0165ccff953e012","50614c808e099a1d4413786f3783d9eeaaa74b267f2c87fcf8a893287e91c301","f4cb6530f248e87cefa74ef623206fec805f6252f885f8e14ef3d1a5872cef2d","38c332caadd8391566552395d592076470a5e7423f70964620eabf05c02907cd","eb17b5bf1fc763a644c21d76572c0e41e351c3f6dfcde649428d5d829f7294d2","cb124162c87b29ff5121e3ee5bb29c782f101e0135d6c2644ab1b31d530a435e","406d6f5d3707c488362fb40d1c1f8a7b0a42b70554b427160185d93e430228f5","2e9776410c5bc290d9432a9215c67398a273e514a79b9e15f32ecddfde8a03be","313ff8df074b81d3e4f088ff3a3a06df3d9b0d0c7f55469ccc2ac887ecb6b867","c718475bca06806cc243e77777641cb67ba68f2c57321a4773ebb47760a3bcf2","96e6bf811343caab5112b68880905c5d20d9257054afac6c18e718a4c549ed27","a2793bc73ba63ca7d259cb0f0b61d0023820170d08a1f9715006c8042d060165","d5011b38165771fdf75a9a06d6d379a1fc7edd7eb695ebdc52319fb6e3c6d81f","88417fb19d339304e9616a38ea513251047c9e300c81f9467fc317df8a582e71","3e8e2d132f726dddbda57819f5391504e585cb3beab6b32203064e7e40618583","6e23627cd3f10418b5b2db102fdcf557b75f2837f266d88afac6b18f333bb1bc","866046dcea88f23d766a65487ee7870c4cf8285a4c75407c80a5c26ed250ef8d","019f4f1cbc781cc15c6173f8be5ef907405722194ab297127b3c3426e5368339","41f4413eac08210dfc1b1cdb5891ad08b05c79f5038bdf8c06e4aedaa85b943d","c79f1c8b51d8475dde8d2973f740f43ca34b1f0a95d93649cd76c1ee20abba19","35f0d2bd2c5c05c0cb19095bf5b7c44365b1c88efe6285370855b90417277a64","8264b129f4c4eb4799703f8e5ee2223a184d1cdbfc782158b1f40a88a4435a1f","527ddda6f8be1279f3294714534c49d6e90f238cea325519882ebf88d7ec5bd2","b23877792e8bd00271d0ec5d401b68e4228540a4316de3d9dfb697b955c161a4","35b2eb1de01633db90d41abe93730b29984856fcc840b4c2801bfd3761a2097b","95f0c9127b879c2fc7e31f8e09ff45bb4aae302e60f4b9ceaf4d9ee6bc51ec66","2a6b4655a6edce9e07c7d826848f72533c9991d40bc36e3f85558ad20e87ce2d","6e3d29fdc96ebbb2ac672d2dae710c689c1ea0d0e9469e0847616f3c38fd085f","d505055b8fadd42da235c85947911d8d198ad70c5f5775991e7821d4f89c90f5","8b5a5852099dca7d7e7a7cef6d681dc1586aafacdb963ca180fe5cabbfa3a24b","0d1aa3341d1ad2064adada71c5d01a2f572e4aac09410e5616d90894105a0eb9","52494ca5a884da3bf11b8165ab31429715f0970d9c6383240c5666f4bd713e01","162fafa2291749df2ab4516854aa781fcee1d9fca2ecd85fb48ae794c0700ce2","b4b9b51ee6f6309cda2e539245235a8caeca2b1d6bf12b5e5c162d17333c450f","d2ffe8356f060b88c1c5cf1fa874a4b779fb87fd1977084876e8be9eab6bf485","c76053984b39150d00ade365b096a8bc21a4a7f2ee9e0a926711b00f8e7bf701","956b510767e3d6f362ea5800510635197723737af5d19ae07ee987ea4a90bfa5","cd1a8ff61f5063d7e6e2094e25d35c90b499961b63911f2f4ae0ff5555c2b4d7","1cf09b5945779e9bc75c4dcd805fb149c28fc90da3335186ef620647a3c540e1","9cdc0b9a313090ec45b34ea1eb02fbace433f509e753634b043e9b83038261e6","c93474cff0088351a65d3cad24037874a26a5371a48528563e56efe31cb3d8bb","b4580df8ea7f62d7b06588001952bf69426e6b03cf3d2569f5f608e45f29ba08","de27f7bb9be9d8a2b4557ec6503b8a315f74d598ce9a0ab81b5ed5610e1a8e81","fe3c378dcefa7ed8b21bd6822f5d7838b1119836da75ae1e1fb485d27b8ffb62","7365bf3333d4277b6fe374ed055624e5ec080dbb919e2d78f1cb75a3f1a4b4f6","a5fbf3bc5c16ab5c84465ba7a043a4bee4c2b20bd3633d50d80118a3844edbaf","0923e4ac8c894ad507bd2daee0df66b699de88467201381ece011ba5a080e1ff","e4f6626f827ea509255647e1b6db82145a2eb1a6b46202655e7d9bb19145c33b","26e23972c40f378f0301d8d7025ea895557c2865a1a31c8ea9c3fff0dbc27075","bfddbff94132b423ad1d71bdbefb1d388c21a74ac1a8742df9324e5bf6109058","795a08ae4e193f345073b49f68826ab6a9b280400b440906e4ec5c237ae777e6","8153df63cf65122809db17128e5918f59d6bb43a371b5218f4430c4585f64085","a8150bc382dd12ce58e00764d2366e1d59a590288ee3123af8a4a2cb4ef7f9df","5adfaf2f9f33957264ad199a186456a4676b2724ed700fc313ff945d03372169","d5c41a741cd408c34cb91f84468f70e9bda3dfeabf33251a61039b3cdb8b22d8","6e87c0c1cf06fe7dd6e545d72edefd61d86b4f13d2f9d34140e8168af94a7b7d","cbaf4a4aa8a8c02aa681c5870d5c69127974de29b7e01df570edec391a417959","b8d9df5c49858df86ffa6c497f1840528963c14ca0dea7684e813b008fe797b3","340a45cd77b41d8a6deda248167fa23d3dc67ec798d411bd282f7b3d555b1695","b1f8c85b27619ccfae9064e433b3b32a11d93d54de5a1afdaeca23c8b30e38a5","0ed6417b905cddb85f98281cb3b5b137d393955521993d9ce069d5e2d6b26ee8","f9ceab53f0d273ccaa68ef125974305dc26fe856af9a5be401ca72d0f78659d4","99d99a765426accf8133737843fb024a154dc6545fc0ffbba968a7c0b848959d","c782c5fd5fa5491c827ecade05c3af3351201dd1c7e77e06711c8029b7a9ee4d","883d2104e448bb351c49dd9689a7e8117b480b614b2622732655cef03021bf6d","8a10bdd9317aa91b37ee4b6dbd40529d0cd16353f04cf7c27b29c5604a28e8c3","09a7e04beb0547c43270b327c067c85a4e2154372417390731dfe092c4350998","eee530aaa93e9ec362e3941ee8355e2d073c7b21d88c2af4713e3d701dab8fef","ebf6ea6f412af15674333149f7f6561c0de9e36a4d4b350daccf6c5acbbf9fa3","1d6cc6dc76a777be3856c8892addb58d60b8957730951f9ab8b721e4f7fdf7e9","7a0e4cd92545ad03910fd019ae9838718643bd4dde39881c745f236914901dfa","c99ebd20316217e349004ee1a0bc74d32d041fb6864093f10f31984c737b8cad","6f622e7f054f5ab86258362ac0a64a2d6a27f1e88732d6f5f052f422e08a70e7","d62d2ef93ceeb41cf9dfab25989a1e5f9ca5160741aac7f1453c69a6c14c69be","1491e80d72873fc586605283f2d9056ee59b166333a769e64378240df130d1c9","c32c073d389cfaa3b3e562423e16c2e6d26b8edebbb7d73ccffff4aa66f2171d","eca72bf229eecadb63e758613c62fab13815879053539a22477d83a48a21cd73","633db46fd1765736409a4767bfc670861468dde60dbb9a501fba4c1b72f8644d","1f9cc8013b709369d82a9f19813cd09cd478481553a0e8262b3b7f28ab52b0b2","a314a39426700ba2b5a76c01bab321bbe79cfef898dae996e930b017fc2b0af9","7f2c10fc5de794bf7ddad2ff13b46e2b7f89ced296c1c372c5fdb94fc759d20d","6ea6e80bf94a93e4841d57878bba521822ca5e2ec7cbb626196a8efc2766eb79","8776e64e6165838ac152fa949456732755b0976d1867ae5534ce248f0ccd7f41","fdaf3475e11582e137bd84fa19f6bdbf23623f79cecc48a4037e8fa5756ba340","5c4c5b49bbb01828402bb04af1d71673b18852c11b7e95bfd5cf4c3d80d352c8","6b8861483f8d90261908256836f1b8951d1f4ac9a2a965e920fb18603c8d1d0a","72afd0094250e7f765576466170a299d0959a4799dbf28eb56ba70ca4772a8b4","44ec212fbf43580505de3d6054376ced252c534ced872c53698047387213efb9","4880c2a2caa941aff7f91f51948ebfb10f15283ff0b163f8ea2a74499add61aa","19c3760af3cbc9da99d5b7763b9e33aaf8d018bc2ed843287b7ff4343adf4634","9d1e38aeb76084848d2fcd39b458ec88246de028c0f3f448b304b15d764b23d2","b1048a866abac5d678376310d28fd258fd4d663942ac915a5fa90e585cf598f8","c9c6eed8faed23fc697b79d421ac443594a3458ae2a60150083ee1e860171971","9cc2a5c3e3c4be782a2300d356b94286764166acf2a6eedc83c6f7a53c0397f7","9ddf8e9069327faa75d20135cab675779844f66590249769c3d35dd2a38c2ba9","d7c30f0abfe9e197e376b016086cf66b2ffb84015139963f37301ed0da9d3d0d","ff75bba0148f07775bcb54bf4823421ed4ebdb751b3bf79cc003bd22e49d7d73","69196fa55fab9cd52c4eecba6051902bd5adff63ecf65e0546cb484b5a279fb1","35a9867207c488061fb4f6fe4715802fbc164b4400018d2fa0149ad02db9a61c","91bf47a209ad0eae090023c3ebc1165a491cf9758799368ffcbee8dbe7448f33","b75aa590b103f8491e1c943f9bc4989df55323d7e68fba393d3de11f4aae6bb8","4894a2c13e65af4fea49a2013e9123fe767a26ae51adb156e1a48dffba1e82f7","fc2a131847515b3dff2f0e835633d9a00a9d03ed59e690e27eec85b7b0522f92","90433c678bc26751eb7a5d54a2bb0a14be6f5717f69abb5f7a04afc75dce15a4","55ae9554811525f24818e19bdc8779fa99df434be7c03e5fc47fa441315f0226","7210df9e28cc71105d8938508a8bf99e7bf7df1f18548d774d7c2accbfb3332e","b842238362d1d1879242576ea63d436daa335613559ef0aff586825638d2d47a","e7bde95a05a0564ee1450bc9a53797b0ac7944bf24d87d6f645baca3aa60df48","62e68ce120914431a7d34232d3eca643a7ddd67584387936a5202ae1c4dd9a1b","e6b74c07c5a4e65b27f5a419467e021f61d45255d625bacffe502bd226ffc41d","e1cb8168c7e0bd4857a66558fe7fe6c66d08432a0a943c51bacdac83773d5745","70e929fee0f98d969cd4247583b4f70fe912787be58e21f6e9123b4afdaeb8f7","cd0eeda77ab149135d817ac1e1cd1e88f73bf37fe5a652b5c14e124e676201cf","cbc15ecf15b73c132087c185178ba51b7a786ff4a51b6f52a50b01aeb3d48353","8ca60a0840c741e66d4421defe62d44226167a4750fcfa080f760a8f9487fd1d","6d8dedbec739bc79642c1e96e9bfc0b83b25b104a0486aebf016fc7b85b39f48","cd0565ace87a2d7802bf4c20ea23a997c54e598b9eb89f9c75e69478c1f7a0b4","c18f4f72a68275b7602e5968b862cb9b7b76ea4a1ac1b3e622f99e0b672569e8","0fdb1ed509382bd388896d3770655b0cda8c80c36f8c54b3899992f7a3a8665c","d97b96b6ecd4ee03f9f1170722c825ef778430a6a0d7aab03b8929012bf773cd","f55fc3e536ab193aaabb9b6ded5f93181f81294ee65fe3199c9f4415f0f1e53c","ec8053ec564993a885ba2e2c31408369270a190a332a29fac7a825bb7e60b37c","542ecc66e4fcc33f46695ae22b1d14c075054a78c019915d556636be642465af","476b5c25e85b94e15d761bb9503f55fb11e81167df451f187f5080fca825273b","72636f59b635c378dc9ea5246b9b3517b1214e340e468e54cb80126353053b2e","ebb79f267a3bf2de5f8edc1995c5d31777b539935fab8b7d863e8efb06c8e9ea","ada033e6a4c7f4e147e6d76bb881069dc66750619f8cc2472d65beeec1100145","52ff5e1ea35c54428b46c75fd14f87b7a7158a8f4a1ecfc4a9b996a03185c738","605d29d619180fbec287d1701e8b1f51f2d16747ec308d20aba3e9a0dac43a0f","67c19848b442d77c767414084fc571ce118b08301c4ddff904889d318f3a3363","c704ff0e0cb86d1b791767a88af21dadfee259180720a14c12baee668d0eb8fb","195c50e15d5b3ea034e01fbdca6f8ad4b35ad47463805bb0360bdffd6fce3009","da665f00b6877ae4adb39cd548257f487a76e3d99e006a702a4f38b4b39431cb","0d276d377a0bf0f35e8d7a5b871922ebfa6aff1757d1bbe27a7982b15ce78516","9cbb45413acfdf0cc384d884de88c3f951319004450c88a2bcdad62a11bd21d9","d7a4309673b06223537bc9544b1a5fe9425628e1c8ab5605f3c5ebc27ecb8074","ced87f58b05e2b07e314754f0a7ab17e2df9c37ee2d429948024b2c6418d6c9f","3eadfd083d40777b403f4f4eecfa40f93876f2a01779157cc114b2565a7afb51","3ac0b94ba8f884f63d38450ce9e29ecd59ff00805ffdd609193d7532b8605459","a3684ea9719122f9477902acd08cd363a6f3cff6d493df89d4dc12fa58204e27","2828dabf17a6507d39ebcc58fef847e111dcf2d51b8e4ff0d32732c72be032b3","c0c46113b4cd5ec9e7cf56e6dbfb3930ef6cbba914c0883eeced396988ae8320","118ea3f4e7b9c12e92551be0766706f57a411b4f18a1b4762cfde3cd6d4f0a96","473bf3574a48185f71b70fe839fb1a340a176d80ea7f50dee489c2dc8e81613f","2b14b50de7e32a9882511d1b06be4eb036303bc72ce4a10f93a224382731500d","eeb24fa259f000f6b51a1fe89123f55de081eb2a0ef8d8f847afd67af49cfb68","91d8f3c1c3ae5efb8564ec7cb1f8ac8bf5714eb94078fb50a761ab811963e324","e21bb2cfbcdd8ce7eebb72422f3660806724f2b16cd6ce126d527511abb3a379","c04146836a55ea071b435298335e47f569db0e4d3ae420e35c83e448f944192f","31f71fe23daabea143fc8bd21dae0d5908227180fcda38ad3674df70351f9761","517168a194de5ffaf307e9f8d9eea05952997e795c2f21f8fbc37c64bc8c3872","6305acbe492b9882ec940f8f0c8e5d1e1395258852f99328efcb1cf1683ca817","7619b1f6087a4e9336b2c42bd784b05aa4a2204a364b60171e5a628f817a381e","15be9120572c9fbcd3c267bd93b4140354514c9e70734e6fcca65ff4a246f83a","412482ab85893cec1d6f26231359474d1f59f6339e2743c08da1b05fc1d12767","858e2315e58af0d28fcd7f141a2505aba6a76fd10378ba0ad169b0336fee33fc","02da6c1b34f4ae2120d70cf5f9268bf1aedf62e55529d34f5974f5a93655ce38","3ecf179ef1cc28f7f9b46c8d2e496d50b542c176e94ed0147bab147b4a961cd6","b145da03ce7e174af5ced2cbbd16e96d3d5c2212f9a90d3657b63a5650a73b7f","c7aadab66a2bc90eeb0ab145ca4daebcbc038e24359263de3b40e7b1c7affba6","99518dc06286877a7b716e0f22c1a72d3c62be42701324b49f27bcc03573efff","f4575fd196a7e33c7be9773a71bcc5fbe7182a2152be909f6b8e8e7ba2438f06","05cba5acd77a4384389b9c62739104b5a1693efd66e6abac6c5ffc53280ae777","acacda82ebd929fe2fe9e31a37f193fc8498a7393a1c31dc5ceb656e2b45b708","1b13e7c5c58ab894fe65b099b6d19bb8afae6d04252db1bf55fe6ba95a0af954","4355d326c3129e5853b56267903f294ad03e34cc28b75f96b80734882dedac80","37139a8d45342c05b6a5aa1698a2e8e882d6dca5fb9a77aa91f05ac04e92e70b","e37191297f1234d3ae54edbf174489f9a3091a05fe959724db36f8e58d21fb17","3fca8fb3aab1bc7abb9b1420f517e9012fdddcbe18803bea2dd48fad6c45e92e","d0b0779e0cac4809a9a3c764ba3bd68314de758765a8e3b9291fe1671bfeb8a1","d2116b5f989aa68e585ae261b9d6d836be6ed1be0b55b47336d9f3db34674e86","d79a227dd654be16d8006eac8b67212679d1df494dfe6da22ea0bd34a13e010c","b9c89b4a2435c171e0a9a56668f510a376cb7991eaecef08b619e6d484841735","b85baa660305c65d45f97f5b227b1505a8023955f1bf27da178232e7be99cc12","d5dd266b6f5c9c24f6b4001e172615626a51e350b3267b4af3970e4fb2c57fab","89049878a456b5e0870bb50289ea8ece28a2abd0255301a261fa8ab6a3e9a07d","a464510505f31a356e9833963d89ce39f37a098715fc2863e533255af4410525","ebbe6765a836bfa7f03181bc433c8984ca29626270ca1e240c009851222cb8a7","ac10457b51ee4a3173b7165c87c795eadd094e024f1d9f0b6f0c131126e3d903","b2f2311d7085a1feec3f6a85d7cc8bdaf1d976de1874c1f92940ad8ce6a34d39","954523d1f4856180cbf79b35bd754e14d3b2aea06c7efd71b254c745976086e9","4ee1e0fea72cd6a832c65af93b62fbf39b009e3711384bb371b48c9abba66781","d35fb65da678a4971822249d657f564ff6bdb6618428642235c4858ebafb2379","b27a613e49e00740db23e2e267b8e44e51ee85a448e787b7fa7c7a7be7316104","4d54136f3080a92f0b031115719321fa25bd855582c30f7f6b6e78969ffe7ec5","6c7554f14f08d3264e220f6ac82cf00e3b6a3bd15ec676bd97bf0e06da79e18d","a2506732a96c864f9336a4fc0403f7f4f3831cfe1db4a40ddf95866dbe2d28ef","8aa451aa2c6e762f359e6fae74e2903f6e3304b1a5ae19c1da548128ddf25add","2e756f5c2e33e9b28aebe174d147a19b46f2364027050acb8c8c2f83e005b2ec","434ea45c930ac3accf5951ac80af2da02a3e0945d33f1e59dbd3a50498cb519b","dc5f64a739746e51c220dceef9b4de820a1daa2dea3254d63bba9988ddcb500b","ab555ebf13e4f021233b5dbd6876eb2a4514aa651693ba9fa38d1e7e7df3b841","6b3233127e08357fda5142130d43a222ed0dac32861ac6c72f8288c0c79cf749","0d4dab75055c9279cb1dcb693cf8568bd724e4f653fd95a3a82ad2e267c4dda6","e4b29bf9f77857ac881ae8eb16d685ecc53e0a996f20d4ff762a6f2974474d90","df6c83e574308f6540c19e3409370482a7d8f448d56c65790b4ac0ab6f6fedd8","32f19b665839b1382b21afc41917cda47a56e744cd3df9986b13a72746d1c522","405fa7000efd4f0317eb31fa76ed40bad16be48ef2efc88b53bbe439fae74aaa","3e5a089877b3647b42c6f8d8284ff26e57fd3d94f1b1736080079796b994a89e","fde8122ba963e8f7ef9da2a35029632dc8637e9740c9d8cc9745d94ca42e6762","5a44788293f9165116c9c183be66cefef0dc5d718782a04847de53bf664f3cc1","afd653ae63ce07075b018ba5ce8f4e977b6055c81cc65998410b904b94003c0a","e113cc2ab6f65586cbba1618aab57af8f1e1fbe0ab9c3d339f1b348f6fe8f63c","9f96b9fd0362a7bfe6a3aa70baa883c47ae167469c904782c99ccc942f62f0dc","5df9a68835c1e020625127d8c951c90808d319c811fc3a780d24f64053192ea4","71807b208e5f15feffb3ff530bec5b46b1217af0d8cc96dde00d549353bcb864","67f7637f370ee8c18fe060c901e071db2c4368de90a5c58cf1f959d12b0c2f7e","d42a43a83aaa8ea845cd97bc0b26f51abbb511b20b6cfc598031306d62fc9bc6","895d77a389c25348c2b54aad128d850f1c2f0363d301fd04d56e788667561101","6aac2c5ca00378e4d1421a03f614643dc1e9fd02279257cbf2e8e2a713b00907","33dd63d5dbfd02cdfc4fc6d47750e619de2da36fe98176731ea2a291287ff4c4","6ad4a01c7e7ebf90072bd6f3087abcf6a443fe41ebcb13b5a0bcfd742dd8ebd5","da15f699f56ab6a37b4eca73eb14a356f5d175d979f0c8197d325d5f23c91bd6","0cf01b1cc6b97144d0e46b3cbcb27046b1d95d884585141d7910f799cfe07332","93850d9e8a0e018eca4809c67df09547c4b6d482c55fd6eae3030847f1c4b9ee","9a8e992b0199d6b032b6223a87050e3738671f2742794233649706438fe16724","f60ccdb5672ab91d03afc4f24f402e5164a6c818bf15185f5361802523f86df7","931574e125523649902eee2db57c221a1b36417db4f2c4665bf38ce2170ea06e","449d613825cdd8aee1aa4e5bda0bbad4de6ce67f6a22f7f4bf0fb571cf133e6e","438b57c680914f2dd27b29789a5d8c169d3abcfb584b68a520e0df5c3ca3cef5","510292e419065814acdc81c37a2d801efea1715951600cfbdc1b712f9da10451","e16ecf37f6f2ca79ff19ba2e4c3697ecd9d38b8d01bf6682bc4003d0d5719651","af3919f1e15caad054071c209341804d85ab679b78979fdf1b1aac4a73dd634a","6aa893aa7bbf9ce05b51e9af8a72816fcb5d54ce0959998640da8d0fcfd8b529","877388f59a044fc4c4689637425d4f8762662b4c6dc86d55864ca8816382b69e","162ffbed80dad8ce0cf81c330c88dccaae85425fb457a6afcae0110419bdedfb","a85d6e7924c263fdb7a9e28a578401f2f96950ff9fd0e250c76f25de5ce3b9f2","8ad06cf401a920fbbea4b0436b80fb92f74bfea9e79312896179d3a6c8e9a3b0","57947d16b34a3811f854965fe668e81ccea9dd6321e412ea1a2c75d4fd2619c1","7cb9b6d5c1e3508fbc81e7bbab314eac54715f9326ac72fd0eb65f17a4393d50","e52c9bb4a4e20ed2ed5cd0aa01d15261949691bffd4d7f5011e79bced9d14e5c","6c36e6a90dd3e1f5e488c56aede7168ea429589d0095285701b7b56f47262bbd","4bc4c7612f5cc6298b01f76f7a21674181ae6e199a0b07c518107c15bde32344",{"version":"fb864f0567c2b4d1aa86c55b482f3f32b1ef203b95d47ece007597e711cd85cb","signature":"af3fcf2555fc7b44c0f1eebe242515bf87c543ca2e7df4906d5e0afb32560f09"},{"version":"d92352683bdccd7a61cd0aae89e918ee736d85c23ccb27fdc4583683a363cc30","signature":"b82491e2990291580288c5602d4c017238977749d52b17391f0e45d9a29be644"},"e9cba458ea179833bba7b180c10e7293b4986d2f66a7bd99c13f243d91bab3d4","8b0b6a4c032a56d5651f7dd02ba3f05fbfe4131c4095093633cda3cae0991972","27484cb3aa328bc5d0957fcb34df68a5db1be280af510d9ed3a282b1a0a93b38","6c2b8c78eb1476ad2668898923fda9c3e67b295b9a6dc7a7312ead2582a76883","d8fb0821bcebbcc5ef87655a6442e8909313eb0bd7960f696b10cdb31576fdaa","1053398d8fd9b1a45170b5cca30bd54abe7ec7061ef2929c4da9feaa71737930","83f7f1890b6a202865b1014b5e72b2115f522773304d61569396be144bbee2fc","8949f85fb38104d50011076ac359186889d6e18e230b0cf8256230e802e8c4ed","fe4613c6c0d23edc04cd8585bdd86bc7337dc6265fb52037d11ca19eeb5e5aaf","667f0c535a93ce1f70d528b57a5c4bf2af8f60559795f39399c8958ede1b66a7","0f02f73e940e993a73103717e21e1d74166b83093bcb299d5e2b5c8bdc684c9b","31a335eb49c1ea1b0d8ded51d2dee99d96b45e67f581638b2bce9cd121a2dcdc","c86ad86cc7a3ec3794deab9b943a823d9aaf09b846bb581a06bf263117e8d6d9","cfe88132f67aa055a3f49d59b01585fa8d890f5a66a0a13bb71973d57573eee7","f23601713615719b1a1394deae884fb9f507de819a086d5a019c63793da9efc6","50fd11b764194f06977c162c37e5a70bcf0d3579bf82dd4de4eee3ac68d0f82f","ad5ad568f2f537a43dcc1588b2379f9dc79539ae36b8821b13a5d03625211eb2","99579aa074ed298e7a3d6a47e68f0cd099e92411212d5081ce88344a5b1b528d","d2d58166965f631fa203f405f3713b0f86f1f8b80755e9daea43057a25311e16","ce7dbf31739cc7bca35ca50e4f0cbd75cd31fd6c05c66841f8748e225dc73aaf","942ab34f62ac3f3d20014615b6442b6dc51815e30a878ebc390dd70e0dec63bf","a861cceeb708d23beebcf7f3235dcdd1a5a7d1655afd6ba49dbc0d45f5370469","0256d60785ede7860b5262f504f139aa68f74db44ba9f03807b752864580772c","396c1e5a39706999ec8cc582916e05fcb4f901631d2c192c1292e95089a494d9","89df75d28f34fc698fe261f9489125b4e5828fbd62d863bbe93373d3ed995056","eefa4f00b4a4c150786e5ed866999b44687388e94a99f0b67a78b59c5b2303fd","be75c12a8d61aaadb9e33e0d7d0e7b2f3bee9a3ac618d04367e0b7c2aea3f86d","e6223b7263dd7a49f4691bf8df2b1e69f764fb46972937e6f9b28538d050b1ba","bf6599adc97713bc0eefb924accc7cb92c4415718650166fcf6157a1ef024f01","1db014db736a09668e0c0576585174dbcfd6471bb5e2d79f151a241e0d18d66b","98fca44eb9a677e5bd6eafaa95eeefbe719c3d520edc819c5d8186dcd7971163","56a2cc03b33542972ed37df7153319540238d34a3a688a004cffcb90c84b3138","82d3e00d56a71fc169f3cf9ec5f5ffcc92f6c0e67d4dfc130dafe9f1886d5515","9a388a54fbab04eef88430f5775cc48c1069d14e852d6fdb10cc966a9c3cd8e8","7007c800fbb767a1137e011d7d8fe0847cbd1a9e99bbe3528db955e32a32d6c1","e3d221660c0b79a9a3ba1111b3dfbb1136c0b52d7609b0054d3ce09ce711a3e6","892adfd3427fa4ed24bede88e8e46e4cb67e53e794365023fd473f3be796981d","b4f1cc43cdf2f75f62ea43ab32ac29e26649920906712d9605cef4849f48065b","9fac6ebf3c60ced53dd21def30a679ec225fc3ff4b8d66b86326c285a4eebb5a","992fda06eebba15d37625007500bef5b3fdd1c5e2f5a334064efeb1604c7bce3","07bc8a3551e39e70c38e7293b1a09916867d728043e352b119f951742cb91624","e47adc2176f43c617c0ab47f2d9b2bb1706d9e0669bf349a30c3fe09ddd63261","7fec79dfd7319fec7456b1b53134edb54c411ba493a0aef350eee75a4f223eeb","189c489705bb96a308dcde9b3336011d08bfbca568bcaf5d5d55c05468e9de7a","98f4b1074567341764b580bf14c5aabe82a4390d11553780814f7e932970a6f7","abdc0a8843b28c3cafbefb90079690b17b7b4e2a9c9bbf2cd8762e11a3958034","2e252235037a2cd8feebfbf74aa460f783e5d423895d13f29a934d7655a1f8be","f3e04e6c6db44b9ad05a0b7c89e914b08eee05f2050968b761ed98735d42cd62",{"version":"e25d9bd8f80b6ffbcc8826ed1b407e747e4fbe346c5bab62cbe5837da4eeb189","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"b2f7fe7faccd7324583435ad92f8cb26a4ccc85de336839cf78afd6006f1d4bc","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","7463cb4f8b66b66d5468fc84f5446f48b8402cdeec6bfce1f0b2ab383992d3b5","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","331dd4fb49f27df3e88bcd1361a063de1e9bcc7d463d6dc386b0c0d690c1a66f","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","117ffeecf6c55e25b6446f449ad079029b5e7317399b0a693858faaaea5ca73e","8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6","6fbd58e4015b9ae31ea977d4d549eb24a1102cc798b57ec5d70868b542c06612",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"a1c79f857f5c7754e14c93949dad8cfefcd7df2ecc0dc9dd79a30fd493e28449","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","3adc8ac088388fd10b0e9cd3fa08abbebed9172577807394a241466ccb98f411","e050a0afcdbb269720a900c85076d18e0c1ab73e580202a2bf6964978181222a","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","3054ef91b855e005b9c4681399e9d64d2a7b07a22d539314d794f09e53b876a7","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true},"2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","93c4fc5b5237c09bc9ed65cb8f0dc1d89034406ab40500b89701341994897142","2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","6aee496bf0ecfbf6731aa8cca32f4b6e92cdc0a444911a7d88410408a45ecc5d","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","31c502014e5ba046d5cb060136929b73fd53f0f989aa37b2b0424644cb0d93ef","76232dbb982272b182a76ad8745a9b02724dc9896e2328ce360e2c56c64c9778","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","28288f5e5f8b7b895ed2abe6359c1da3e0d14a64b5aef985071285671f347c01"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"experimentalDecorators":true,"module":1,"noFallthroughCasesInSwitch":false,"noImplicitAny":false,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"strictBindCallApply":false,"strictNullChecks":false,"target":4},"fileIdsList":[[228,529],[228],[228,558],[228,355,357],[228,348,357,358],[228,387],[228,298,387],[228,388,389],[48,228,359,390,392,393],[228,294,348],[228,391],[228,348,355,356],[228,356,357],[228,348],[228,310,335],[228,451],[228,360,361,362,363,364,365,366,367,368,369,370,371,372,373],[228,303,335],[228,310],[228,300,348,451],[228,378,379,380,381,382,383,384,385],[228,305],[228,348,451],[228,374,377,386],[228,375,376],[228,339],[228,305,306,307,308],[228,395],[228,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416],[228,419],[216,228,235,418],[47,228,309,348,355,387,394,417,420,441,446,448,450],[52,228],[52,228,294],[228,303,422],[228,297,424],[228,294,298],[52,228,348],[228,302,303],[228,315],[228,317,318,319,320,321],[228,309,310,323,327],[228,328,329,330],[228,235],[49,50,51,52,53,228,295,296,297,298,299,300,301,302,303,304,310,315,316,322,327,331,332,333,335,343,344,345,346,347],[228,326],[228,311,312,313,314],[228,303,311,312],[228,303,309,310],[228,303,313],[228,303,339],[228,334,336,337,338,339,340,341,342],[49,228,303],[228,335],[49,228,303,334,338,340],[228,312],[228,336],[228,303,335,336,337],[228,325],[228,303,307,325,343],[228,323,324,326],[228,299,301,310,316,323,328,344,345,348],[53,228,299,301,304,344,345],[228,308],[228,294],[228,325,348,349,353],[228,353,354],[228,348,349],[228,348,349,350],[228,350,351],[228,350,351,352],[228,304],[228,434],[228,434,435,436,437,438,439],[228,426,434],[228,434,435,436,437,438],[228,304,434,437],[228,421,427,428,429,430,431,432,433,440],[228,304,348,427],[228,304,426],[228,304,426,451],[228,297,303,304,422,423,424,425,426],[228,294,348,422,423,442],[228,348,422],[228,444],[228,387,442],[228,442,443,445],[228,325,447],[228,334],[228,309,348],[228,449],[228,323,327,348,451],[228,480],[228,348,451,491,492],[228,484,490,491],[228,495,496],[228,451,481,498],[228,499],[228,491],[228,498,501],[47,228,474,481,493,494,497,500,502,509,512,513,514,516,518,524,526],[228,348,451,486,487,490,491],[228,348,482],[228,303,332,451,482,483,484,490,491,493,527],[228,484,485,489,491,504,508],[228,348,451,490,491],[228,503],[228,485,490,491],[228,451,485,486,490],[228,348,451,490],[228,451,483,484,489,505,506,507],[228,348,451,485,486,487,488,490,491],[228,303,451],[228,348,485,489,491],[228,490],[228,332],[228,315,348,510],[228,511],[228,348,485],[228,323,348,451,481,485,493,513],[228,326,327,451,480,515],[228,517],[215,228,235,451],[228,520,522,523],[228,519],[228,521],[228,451,484,490,520],[51,228,303,332,348,451,474,485,490,493],[228,525],[228,453],[228,294,348,451],[228,455,456,457,467,468],[228,466],[228,470],[228,472],[228,294,474,475],[47,228,454,466,469,471,473,476],[228,323],[228,459,460,461],[228,458,462,463,464,465],[228,529,530,531,532,533],[228,529,531],[202,228,235,535],[202,228,235],[202,228],[228,541,543],[228,540,541,542],[199,202,228,235,545,546],[228,536,546,547,550],[200,228,235],[228,553],[228,554],[228,560,563],[228,549],[228,548],[184,228],[187,228],[188,193,219,228],[189,199,200,207,216,227,228],[189,190,199,207,228],[191,228],[192,193,200,208,228],[193,216,224,228],[194,196,199,207,228],[195,228],[196,197,228],[198,199,228],[199,228],[199,200,201,216,227,228],[199,200,201,216,228],[202,207,216,227,228],[199,200,202,203,207,216,224,227,228],[202,204,216,224,227,228],[184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234],[199,205,228],[206,227,228],[196,199,207,216,228],[208,228],[209,228],[187,210,228],[211,226,228,232],[212,228],[213,228],[199,214,228],[214,215,228,230],[188,199,216,217,218,228],[188,216,218,228],[216,217,228],[219,228],[220,228],[199,222,223,228],[222,223,228],[193,207,224,228],[225,228],[207,226,228],[188,202,213,227,228],[193,228],[216,228,229],[228,230],[228,231],[188,193,199,201,210,216,227,228,230,232],[216,228,233],[228,567,606],[228,567,591,606],[228,606],[228,567],[228,567,592,606],[228,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605],[228,592,606],[202,228,235,549],[188,200,202,216,228,235,538],[228,609],[228,611],[228,556,562],[228,560],[228,557,561],[228,559],[54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,111,112,113,114,115,116,117,118,119,121,123,124,125,126,127,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,177,228,238,240,241,242,243,244,245,247,248,250,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293],[99,228],[57,58,228],[54,55,56,58,228],[55,58,228],[58,99,228],[54,58,176,228],[56,57,58,228],[54,58,228],[58,228],[57,228],[54,57,99,228],[55,57,58,228,267],[57,58,228,267],[57,228,275],[55,57,58,228],[67,228],[90,228],[111,228],[57,58,99,228],[58,106,228],[57,58,99,117,228],[57,58,117,228],[58,158,228],[54,58,177,228],[183,228,237],[54,58,176,183,228,236],[176,177,228,237],[183,228],[54,58,183,228,236,237],[228,251],[228,246],[228,249],[55,57,177,178,179,180,228],[99,177,178,179,180,228],[177,179,228],[57,178,179,181,182,228,238],[54,57,228],[58,228,253],[59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,100,101,102,103,104,105,107,108,109,110,111,112,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,228],[228,239],[228,451,478],[228,477],[228,479,527]],"referencedMap":[[531,1],[529,2],[556,2],[559,3],[48,2],[358,4],[359,5],[388,6],[389,7],[390,8],[394,9],[391,10],[392,11],[356,2],[357,12],[393,13],[372,2],[360,2],[361,14],[362,15],[363,2],[364,16],[374,17],[365,2],[366,18],[367,2],[368,2],[369,14],[370,14],[371,14],[373,19],[381,20],[383,2],[380,2],[386,21],[384,2],[382,2],[378,22],[379,23],[385,2],[387,24],[375,2],[377,25],[376,26],[306,2],[309,27],[305,2],[307,2],[308,2],[411,28],[396,28],[403,28],[400,28],[413,28],[404,28],[410,28],[395,2],[414,28],[417,29],[408,28],[398,28],[416,28],[401,28],[399,28],[409,28],[405,28],[415,28],[402,28],[412,28],[397,28],[407,28],[406,28],[420,30],[419,31],[418,2],[451,32],[49,2],[50,2],[51,2],[53,33],[295,34],[296,33],[422,2],[323,2],[324,2],[423,35],[297,2],[424,2],[425,36],[52,2],[299,37],[300,2],[298,38],[301,37],[302,2],[304,39],[316,40],[317,2],[322,41],[318,2],[319,2],[320,2],[321,2],[328,42],[331,43],[329,2],[330,44],[348,45],[332,2],[333,2],[515,46],[315,47],[313,48],[311,49],[312,50],[314,2],[340,51],[334,2],[343,52],[336,53],[341,54],[339,55],[342,56],[337,57],[338,58],[326,59],[344,60],[327,61],[346,62],[347,63],[335,2],[303,2],[310,64],[345,65],[354,66],[349,2],[355,67],[350,68],[351,69],[352,70],[353,71],[421,72],[435,73],[434,2],[440,74],[436,73],[437,75],[439,76],[438,77],[441,78],[428,79],[429,80],[432,81],[431,81],[430,80],[433,80],[427,82],[443,83],[442,84],[445,85],[444,86],[446,87],[447,59],[448,88],[325,2],[449,89],[426,90],[450,91],[480,92],[481,93],[493,94],[494,2],[495,2],[496,95],[497,96],[499,97],[500,98],[501,99],[498,93],[502,100],[527,101],[488,102],[483,103],[485,104],[509,105],[486,106],[504,107],[503,2],[487,108],[506,109],[491,110],[507,2],[508,111],[489,112],[482,113],[490,114],[484,115],[474,116],[511,117],[512,118],[510,119],[513,112],[514,120],[516,121],[518,122],[517,123],[524,124],[492,16],[520,125],[519,16],[522,126],[521,2],[523,127],[505,128],[526,129],[525,16],[454,130],[453,131],[455,2],[456,2],[469,132],[457,16],[467,133],[468,2],[471,134],[470,2],[472,16],[473,135],[476,136],[477,137],[458,138],[462,139],[459,2],[460,2],[461,2],[466,140],[475,2],[463,65],[464,2],[465,2],[558,2],[534,141],[530,1],[532,142],[533,1],[536,143],[535,144],[537,2],[538,2],[539,145],[544,146],[540,2],[543,147],[541,2],[547,148],[551,149],[552,150],[553,2],[554,151],[555,152],[564,153],[542,2],[548,154],[549,155],[184,156],[185,156],[187,157],[188,158],[189,159],[190,160],[191,161],[192,162],[193,163],[194,164],[195,165],[196,166],[197,166],[198,167],[199,168],[200,169],[201,170],[186,2],[234,2],[202,171],[203,172],[204,173],[235,174],[205,175],[206,176],[207,177],[208,178],[209,179],[210,180],[211,181],[212,182],[213,183],[214,184],[215,185],[216,186],[218,187],[217,188],[219,189],[220,190],[221,2],[222,191],[223,192],[224,193],[225,194],[226,195],[227,196],[228,197],[229,198],[230,199],[231,200],[232,201],[233,202],[565,2],[566,2],[546,2],[545,2],[591,203],[592,204],[567,205],[570,205],[589,203],[590,203],[580,203],[579,206],[577,203],[572,203],[585,203],[583,203],[587,203],[571,203],[584,203],[588,203],[573,203],[574,203],[586,203],[568,203],[575,203],[576,203],[578,203],[582,203],[593,207],[581,203],[569,203],[606,208],[605,2],[600,207],[602,209],[601,207],[594,207],[595,207],[597,207],[599,207],[603,209],[604,209],[596,209],[598,209],[550,210],[607,2],[609,211],[610,212],[611,2],[612,213],[608,2],[563,214],[561,215],[562,216],[557,2],[560,217],[47,2],[294,218],[267,2],[245,219],[243,219],[106,220],[57,221],[56,222],[244,223],[177,224],[99,225],[55,226],[54,227],[293,222],[258,228],[257,228],[117,229],[265,220],[266,220],[268,230],[269,220],[270,227],[271,220],[242,220],[272,220],[273,231],[274,220],[275,228],[276,232],[277,220],[278,220],[279,220],[280,220],[281,228],[282,220],[283,220],[284,220],[285,220],[286,233],[287,220],[288,220],[289,220],[290,220],[291,220],[59,227],[60,227],[61,220],[62,227],[63,227],[64,227],[65,227],[66,220],[68,234],[69,227],[67,227],[70,227],[71,227],[72,227],[73,227],[74,227],[75,227],[76,220],[77,227],[78,227],[79,227],[80,227],[81,227],[82,220],[83,227],[84,220],[85,227],[86,227],[87,227],[88,227],[89,220],[91,235],[90,227],[92,227],[93,227],[94,227],[95,227],[96,233],[97,220],[98,220],[112,236],[100,237],[101,227],[102,227],[103,220],[104,227],[105,227],[107,238],[108,227],[109,227],[110,227],[111,227],[113,227],[114,227],[115,227],[116,227],[118,239],[119,227],[120,227],[121,227],[122,220],[123,227],[124,240],[125,240],[126,240],[127,220],[128,227],[129,227],[130,227],[135,227],[131,227],[132,220],[133,227],[134,220],[136,220],[137,227],[138,227],[139,220],[140,220],[141,227],[142,220],[143,227],[144,227],[145,220],[146,227],[147,227],[148,227],[149,227],[150,227],[151,227],[152,227],[153,227],[154,227],[155,227],[156,227],[157,227],[158,227],[159,241],[160,227],[161,227],[162,227],[163,227],[164,227],[165,227],[166,220],[167,220],[168,220],[169,220],[170,220],[171,227],[172,227],[173,227],[174,227],[292,220],[176,242],[251,243],[246,243],[237,244],[183,245],[249,246],[238,247],[252,248],[247,249],[248,246],[250,250],[236,44],[241,2],[181,251],[182,252],[179,2],[180,253],[178,227],[239,254],[58,255],[259,2],[260,2],[261,2],[262,2],[263,2],[264,2],[253,2],[256,228],[255,2],[254,256],[175,257],[240,258],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[46,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[452,16],[479,259],[478,260],[528,261]],"exportedModulesMap":[[531,1],[529,2],[556,2],[559,3],[48,2],[358,4],[359,5],[388,6],[389,7],[390,8],[394,9],[391,10],[392,11],[356,2],[357,12],[393,13],[372,2],[360,2],[361,14],[362,15],[363,2],[364,16],[374,17],[365,2],[366,18],[367,2],[368,2],[369,14],[370,14],[371,14],[373,19],[381,20],[383,2],[380,2],[386,21],[384,2],[382,2],[378,22],[379,23],[385,2],[387,24],[375,2],[377,25],[376,26],[306,2],[309,27],[305,2],[307,2],[308,2],[411,28],[396,28],[403,28],[400,28],[413,28],[404,28],[410,28],[395,2],[414,28],[417,29],[408,28],[398,28],[416,28],[401,28],[399,28],[409,28],[405,28],[415,28],[402,28],[412,28],[397,28],[407,28],[406,28],[420,30],[419,31],[418,2],[451,32],[49,2],[50,2],[51,2],[53,33],[295,34],[296,33],[422,2],[323,2],[324,2],[423,35],[297,2],[424,2],[425,36],[52,2],[299,37],[300,2],[298,38],[301,37],[302,2],[304,39],[316,40],[317,2],[322,41],[318,2],[319,2],[320,2],[321,2],[328,42],[331,43],[329,2],[330,44],[348,45],[332,2],[333,2],[515,46],[315,47],[313,48],[311,49],[312,50],[314,2],[340,51],[334,2],[343,52],[336,53],[341,54],[339,55],[342,56],[337,57],[338,58],[326,59],[344,60],[327,61],[346,62],[347,63],[335,2],[303,2],[310,64],[345,65],[354,66],[349,2],[355,67],[350,68],[351,69],[352,70],[353,71],[421,72],[435,73],[434,2],[440,74],[436,73],[437,75],[439,76],[438,77],[441,78],[428,79],[429,80],[432,81],[431,81],[430,80],[433,80],[427,82],[443,83],[442,84],[445,85],[444,86],[446,87],[447,59],[448,88],[325,2],[449,89],[426,90],[450,91],[480,92],[481,93],[493,94],[494,2],[495,2],[496,95],[497,96],[499,97],[500,98],[501,99],[498,93],[502,100],[527,101],[488,102],[483,103],[485,104],[509,105],[486,106],[504,107],[503,2],[487,108],[506,109],[491,110],[507,2],[508,111],[489,112],[482,113],[490,114],[484,115],[474,116],[511,117],[512,118],[510,119],[513,112],[514,120],[516,121],[518,122],[517,123],[524,124],[492,16],[520,125],[519,16],[522,126],[521,2],[523,127],[505,128],[526,129],[525,16],[454,130],[453,131],[455,2],[456,2],[469,132],[457,16],[467,133],[468,2],[471,134],[470,2],[472,16],[473,135],[476,136],[477,137],[458,138],[462,139],[459,2],[460,2],[461,2],[466,140],[475,2],[463,65],[464,2],[465,2],[558,2],[534,141],[530,1],[532,142],[533,1],[536,143],[535,144],[537,2],[538,2],[539,145],[544,146],[540,2],[543,147],[541,2],[547,148],[551,149],[552,150],[553,2],[554,151],[555,152],[564,153],[542,2],[548,154],[549,155],[184,156],[185,156],[187,157],[188,158],[189,159],[190,160],[191,161],[192,162],[193,163],[194,164],[195,165],[196,166],[197,166],[198,167],[199,168],[200,169],[201,170],[186,2],[234,2],[202,171],[203,172],[204,173],[235,174],[205,175],[206,176],[207,177],[208,178],[209,179],[210,180],[211,181],[212,182],[213,183],[214,184],[215,185],[216,186],[218,187],[217,188],[219,189],[220,190],[221,2],[222,191],[223,192],[224,193],[225,194],[226,195],[227,196],[228,197],[229,198],[230,199],[231,200],[232,201],[233,202],[565,2],[566,2],[546,2],[545,2],[591,203],[592,204],[567,205],[570,205],[589,203],[590,203],[580,203],[579,206],[577,203],[572,203],[585,203],[583,203],[587,203],[571,203],[584,203],[588,203],[573,203],[574,203],[586,203],[568,203],[575,203],[576,203],[578,203],[582,203],[593,207],[581,203],[569,203],[606,208],[605,2],[600,207],[602,209],[601,207],[594,207],[595,207],[597,207],[599,207],[603,209],[604,209],[596,209],[598,209],[550,210],[607,2],[609,211],[610,212],[611,2],[612,213],[608,2],[563,214],[561,215],[562,216],[557,2],[560,217],[47,2],[294,218],[267,2],[245,219],[243,219],[106,220],[57,221],[56,222],[244,223],[177,224],[99,225],[55,226],[54,227],[293,222],[258,228],[257,228],[117,229],[265,220],[266,220],[268,230],[269,220],[270,227],[271,220],[242,220],[272,220],[273,231],[274,220],[275,228],[276,232],[277,220],[278,220],[279,220],[280,220],[281,228],[282,220],[283,220],[284,220],[285,220],[286,233],[287,220],[288,220],[289,220],[290,220],[291,220],[59,227],[60,227],[61,220],[62,227],[63,227],[64,227],[65,227],[66,220],[68,234],[69,227],[67,227],[70,227],[71,227],[72,227],[73,227],[74,227],[75,227],[76,220],[77,227],[78,227],[79,227],[80,227],[81,227],[82,220],[83,227],[84,220],[85,227],[86,227],[87,227],[88,227],[89,220],[91,235],[90,227],[92,227],[93,227],[94,227],[95,227],[96,233],[97,220],[98,220],[112,236],[100,237],[101,227],[102,227],[103,220],[104,227],[105,227],[107,238],[108,227],[109,227],[110,227],[111,227],[113,227],[114,227],[115,227],[116,227],[118,239],[119,227],[120,227],[121,227],[122,220],[123,227],[124,240],[125,240],[126,240],[127,220],[128,227],[129,227],[130,227],[135,227],[131,227],[132,220],[133,227],[134,220],[136,220],[137,227],[138,227],[139,220],[140,220],[141,227],[142,220],[143,227],[144,227],[145,220],[146,227],[147,227],[148,227],[149,227],[150,227],[151,227],[152,227],[153,227],[154,227],[155,227],[156,227],[157,227],[158,227],[159,241],[160,227],[161,227],[162,227],[163,227],[164,227],[165,227],[166,220],[167,220],[168,220],[169,220],[170,220],[171,227],[172,227],[173,227],[174,227],[292,220],[176,242],[251,243],[246,243],[237,244],[183,245],[249,246],[238,247],[252,248],[247,249],[248,246],[250,250],[236,44],[241,2],[181,251],[182,252],[179,2],[180,253],[178,227],[239,254],[58,255],[259,2],[260,2],[261,2],[262,2],[263,2],[264,2],[253,2],[256,228],[255,2],[254,256],[175,257],[240,258],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[46,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[452,16]],"semanticDiagnosticsPerFile":[531,529,556,559,48,358,359,388,389,390,394,391,392,356,357,393,372,360,361,362,363,364,374,365,366,367,368,369,370,371,373,381,383,380,386,384,382,378,379,385,387,375,377,376,306,309,305,307,308,411,396,403,400,413,404,410,395,414,417,408,398,416,401,399,409,405,415,402,412,397,407,406,420,419,418,451,49,50,51,53,295,296,422,323,324,423,297,424,425,52,299,300,298,301,302,304,316,317,322,318,319,320,321,328,331,329,330,348,332,333,515,315,313,311,312,314,340,334,343,336,341,339,342,337,338,326,344,327,346,347,335,303,310,345,354,349,355,350,351,352,353,421,435,434,440,436,437,439,438,441,428,429,432,431,430,433,427,443,442,445,444,446,447,448,325,449,426,450,480,481,493,494,495,496,497,499,500,501,498,502,527,488,483,485,509,486,504,503,487,506,491,507,508,489,482,490,484,474,511,512,510,513,514,516,518,517,524,492,520,519,522,521,523,505,526,525,454,453,455,456,469,457,467,468,471,470,472,473,476,477,458,462,459,460,461,466,475,463,464,465,558,534,530,532,533,536,535,537,538,539,544,540,543,541,547,551,552,553,554,555,564,542,548,549,184,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,186,234,202,203,204,235,205,206,207,208,209,210,211,212,213,214,215,216,218,217,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,565,566,546,545,591,592,567,570,589,590,580,579,577,572,585,583,587,571,584,588,573,574,586,568,575,576,578,582,593,581,569,606,605,600,602,601,594,595,597,599,603,604,596,598,550,607,609,610,611,612,608,563,561,562,557,560,47,294,267,245,243,106,57,56,244,177,99,55,54,293,258,257,117,265,266,268,269,270,271,242,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,59,60,61,62,63,64,65,66,68,69,67,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,90,92,93,94,95,96,97,98,112,100,101,102,103,104,105,107,108,109,110,111,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,130,135,131,132,133,134,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,292,176,251,246,237,183,249,238,252,247,248,250,236,241,181,182,179,180,178,239,58,259,260,261,262,263,264,253,256,255,254,175,240,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,46,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,1,45,11,10,452,479,478,528]},"version":"4.9.3"} \ No newline at end of file diff --git a/tests_hugo/chat_nest/chat_server/nest-cli.json b/tests_hugo/chat_nest/chat_server/nest-cli.json new file mode 100644 index 00000000..25664811 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/nest-cli.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://json.schemastore.org/nest-cli", + "collection": "@nestjs/schematics", + "sourceRoot": "src" +} diff --git a/tests_hugo/chat_nest/chat_server/package-lock.json b/tests_hugo/chat_nest/chat_server/package-lock.json new file mode 100644 index 00000000..290462f3 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/package-lock.json @@ -0,0 +1,14851 @@ +{ + "name": "chat", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "chat", + "version": "0.0.1", + "license": "UNLICENSED", + "dependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/platform-express": "^9.0.0", + "@nestjs/platform-socket.io": "^9.2.0", + "@nestjs/websockets": "^9.2.0", + "reflect-metadata": "^0.1.13", + "rimraf": "^3.0.2", + "rxjs": "^7.2.0", + "socket.io": "^4.5.3" + }, + "devDependencies": { + "@nestjs/cli": "^9.0.0", + "@nestjs/schematics": "^9.0.0", + "@nestjs/testing": "^9.0.0", + "@types/express": "^4.17.13", + "@types/jest": "28.1.8", + "@types/node": "^16.0.0", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^8.0.1", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "28.1.3", + "prettier": "^2.3.2", + "source-map-support": "^0.5.20", + "supertest": "^6.1.3", + "ts-jest": "28.0.8", + "ts-loader": "^9.2.3", + "ts-node": "^10.0.0", + "tsconfig-paths": "4.1.0", + "typescript": "^4.7.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.2.tgz", + "integrity": "sha512-ofDhTmJqoAkmkJP0duwUaCxDBMxPlc+AWYwgs3rKKZeJBb0d+tchEXHXevD5bYbbRfXtnwM+Vye2XYHhA4nWAA==", + "dev": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/schematics": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.2.tgz", + "integrity": "sha512-90hseNg1yQ2AR+lVr/NByZRHnYAlzCL6hr9p9q1KPHxA3Owo04yX6n6dvR/xf27hCopXInXKPsasR59XCx5ZOQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.2", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-14.2.2.tgz", + "integrity": "sha512-timCty5tO1A5VOcy8nVJ+jL98i6+ct5/Hg+4rQxc3J6agmmNL9fALboJBEz1ckTt7MewlGtrpohMMy+YGhuWOg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "ansi-colors": "4.1.3", + "inquirer": "8.2.4", + "symbol-observable": "4.0.0", + "yargs-parser": "21.1.1" + }, + "bin": { + "schematics": "bin/schematics.js" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/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/@angular-devkit/schematics-cli/node_modules/inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/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/@babel/generator": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/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/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "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/@eslint/eslintrc/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/@eslint/eslintrc/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/@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "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/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/console/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/@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/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/@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "dependencies": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/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/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform/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/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/types/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/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nestjs/cli": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-9.1.5.tgz", + "integrity": "sha512-rSp26+Nv7PFtYrRSP18Gv5ZK8rRSc2SCCF5wh4SdZaVGgkxShpNq9YEfI+ik/uziN3KC5o74ppYRXGj+aHGVsA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "@angular-devkit/schematics-cli": "14.2.2", + "@nestjs/schematics": "^9.0.0", + "chalk": "3.0.0", + "chokidar": "3.5.3", + "cli-table3": "0.6.2", + "commander": "4.1.1", + "fork-ts-checker-webpack-plugin": "7.2.13", + "inquirer": "7.3.3", + "node-emoji": "1.11.0", + "ora": "5.4.1", + "os-name": "4.0.1", + "rimraf": "3.0.2", + "shelljs": "0.8.5", + "source-map-support": "0.5.21", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.1.0", + "tsconfig-paths-webpack-plugin": "4.0.0", + "typescript": "4.8.4", + "webpack": "5.74.0", + "webpack-node-externals": "3.0.0" + }, + "bin": { + "nest": "bin/nest.js" + }, + "engines": { + "node": ">= 12.9.0" + } + }, + "node_modules/@nestjs/cli/node_modules/typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@nestjs/cli/node_modules/webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/@nestjs/common": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-9.2.0.tgz", + "integrity": "sha512-Ndcqak/ETYi+n1c5lFRPbxKLyUuM6DIOxcvfEFGfi0f6ad4dWDXRDx7z/n8V0l8+Y8djvvOHgf3t0e93w963Qg==", + "dependencies": { + "iterare": "1.2.1", + "tslib": "2.4.1", + "uuid": "9.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "cache-manager": "<=5", + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "cache-manager": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/core": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-9.2.0.tgz", + "integrity": "sha512-eVN7aXAavV+ImVt8mO+rQ5YyUP6lJtQKUtQHxHKzz6Wg+9Y67WWZS2uDcDX5NNcNijbWky5bqad86fgcK9Oqig==", + "hasInstallScript": true, + "dependencies": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "object-hash": "3.0.0", + "path-to-regexp": "3.2.0", + "tslib": "2.4.1", + "uuid": "9.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/microservices": "^9.0.0", + "@nestjs/platform-express": "^9.0.0", + "@nestjs/websockets": "^9.0.0", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } + } + }, + "node_modules/@nestjs/platform-express": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-9.2.0.tgz", + "integrity": "sha512-J1+nnzjC9ATSb0jSHBqAE6D4o+PIbGPItEfYTOZ0rkE5bvqnRfgO4q94SXhfri+5PaNx2vM8tOZsKaD0QmQRGQ==", + "dependencies": { + "body-parser": "1.20.1", + "cors": "2.8.5", + "express": "4.18.2", + "multer": "1.4.4-lts.1", + "tslib": "2.4.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0" + } + }, + "node_modules/@nestjs/platform-socket.io": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/platform-socket.io/-/platform-socket.io-9.2.0.tgz", + "integrity": "sha512-ttxXtqHV3Cpk5AfZOxfE8urILV5oLBpG21vdyqUHiL0YDuhHdc2tBz5GKSYAfsWefmVeQQiBAV9dqaa23Rf0nQ==", + "dependencies": { + "socket.io": "4.5.3", + "tslib": "2.4.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/websockets": "^9.0.0", + "rxjs": "^7.1.0" + } + }, + "node_modules/@nestjs/schematics": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.0.3.tgz", + "integrity": "sha512-kZrU/lrpVd2cnK8I3ibDb3Wi1ppl3wX3U3lVWoL+DzRRoezWKkh8upEL4q0koKmuXnsmLiu3UPxFeMOrJV7TSA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", + "fs-extra": "10.1.0", + "jsonc-parser": "3.2.0", + "pluralize": "8.0.0" + }, + "peerDependencies": { + "typescript": "^4.3.5" + } + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "dev": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core/node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", + "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.1", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics/node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "node_modules/@nestjs/schematics/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/@nestjs/schematics/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@nestjs/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@nestjs/testing": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-9.2.0.tgz", + "integrity": "sha512-Lj6UXmBJKcXB16bZzu0IG7GpH7hl5Cn71OcPSrVVuPrFd5kDYqFbodfE9OkAKaHjEhOvZ2ynoo/i6cyfX4yOvQ==", + "dev": true, + "dependencies": { + "tslib": "2.4.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/microservices": "^9.0.0", + "@nestjs/platform-express": "^9.0.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + } + } + }, + "node_modules/@nestjs/websockets": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-9.2.0.tgz", + "integrity": "sha512-AbG4eN9p9O6QmNSOWsk0lrA+CtHkrdDkogcl1sGyTrg+LRd6IUlkaTu9fFK9Hl6o7bs2ieGgDmxAvl+Xd156Aw==", + "dependencies": { + "iterare": "1.2.1", + "object-hash": "3.0.0", + "tslib": "2.4.1" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/platform-socket.io": "^9.0.0", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/platform-socket.io": { + "optional": 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/@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "node_modules/@types/cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "node_modules/@types/eslint": { + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "28.1.8", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz", + "integrity": "sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==", + "dev": true, + "dependencies": { + "expect": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==" + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/superagent": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.15.tgz", + "integrity": "sha512-mu/N4uvfDN2zVQQ5AYJI/g4qxn2bHB6521t1UuH09ShNWjebTqN0ZFuYK9uYjcgmI0dTQEs+Owi1EO6U0OkOZQ==", + "dev": true, + "dependencies": { + "@types/cookiejar": "*", + "@types/node": "*" + } + }, + "node_modules/@types/supertest": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.12.tgz", + "integrity": "sha512-X3HPWTwXRerBZS7Mo1k6vMVR1Z6zmJcDVn5O/31whe0tnjE4te6ZJSJGq1RiqHPjzPdMTfjCFogDJmwng9xHaQ==", + "dev": true, + "dependencies": { + "@types/superagent": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.43.0.tgz", + "integrity": "sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/type-utils": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.43.0.tgz", + "integrity": "sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz", + "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.43.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "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/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "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-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "dependencies": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/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/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "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==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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==", + "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/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", + "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "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==", + "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==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "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==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cookiejar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "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==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "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/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "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/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.1.tgz", + "integrity": "sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "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.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.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/eslint/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/eslint/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/eslint/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/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/eslint/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/eslint/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/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "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/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "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/esquery/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/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/esrecurse/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/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "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/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "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-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/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "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/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "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/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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/fork-ts-checker-webpack-plugin": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.13.tgz", + "integrity": "sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "vue-template-compiler": "*", + "webpack": "^5.11.0" + }, + "peerDependenciesMeta": { + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", + "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "dev": true, + "dependencies": { + "dezalgo": "1.0.3", + "hexoid": "1.0.0", + "once": "1.4.0", + "qs": "6.9.3" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/formidable/node_modules/qs": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", + "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "dev": true, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "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==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "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-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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": "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/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "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/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "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==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/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/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "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==", + "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==" + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/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/inquirer/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/inquirer/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "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/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/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/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/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/jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/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/jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-diff/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/jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/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/jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils/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/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/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/jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve/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/jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner/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/jest-runner/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runtime/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/jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/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/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-util/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/jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/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/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watcher/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/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "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/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "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": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "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==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "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/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/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/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/macos-release": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", + "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/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/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "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/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "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/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=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==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "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==" + }, + "node_modules/multer": { + "version": "1.4.4-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "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/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-abort-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz", + "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==", + "dev": true + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/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/os-name": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", + "dev": true, + "dependencies": { + "macos-release": "^2.5.0", + "windows-release": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.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/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "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-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==" + }, + "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/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "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/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "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/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "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/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "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/rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/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/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/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/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/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/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "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/socket.io": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.3.tgz", + "integrity": "sha512-zdpnnKU+H6mOp7nYRXH4GNv1ux6HL6+lHL8g7Ds7Lj8CkdK1jJK/dlwsKDculbyOHifcJ0Pr/yeXnZQ5GeFrcg==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + }, + "node_modules/socket.io-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/superagent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.3.tgz", + "integrity": "sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/supertest": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.1.tgz", + "integrity": "sha512-hRohNeIfk/cA48Cxpa/w48hktP6ZaRqXb0QV5rLvW0C7paRsBU3Q5zydzYrslOJtj/gd48qx540jKtcs6vG1fQ==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.0.3" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.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/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "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/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-jest": { + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^28.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^28.0.0", + "babel-jest": "^28.0.0", + "jest": "^28.0.0", + "typescript": ">=4.3" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-loader": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.1.tgz", + "integrity": "sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/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/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz", + "integrity": "sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow==", + "dev": true, + "dependencies": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tsconfig-paths-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tsconfig-paths-webpack-plugin/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/tsconfig-paths/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/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "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-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "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/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/webpack": { + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.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/windows-release": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", + "dev": true, + "dependencies": { + "execa": "^4.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/windows-release/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "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/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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==" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@angular-devkit/core": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.2.tgz", + "integrity": "sha512-ofDhTmJqoAkmkJP0duwUaCxDBMxPlc+AWYwgs3rKKZeJBb0d+tchEXHXevD5bYbbRfXtnwM+Vye2XYHhA4nWAA==", + "dev": true, + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.2.tgz", + "integrity": "sha512-90hseNg1yQ2AR+lVr/NByZRHnYAlzCL6hr9p9q1KPHxA3Owo04yX6n6dvR/xf27hCopXInXKPsasR59XCx5ZOQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.2", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/schematics-cli": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-14.2.2.tgz", + "integrity": "sha512-timCty5tO1A5VOcy8nVJ+jL98i6+ct5/Hg+4rQxc3J6agmmNL9fALboJBEz1ckTt7MewlGtrpohMMy+YGhuWOg==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "ansi-colors": "4.1.3", + "inquirer": "8.2.4", + "symbol-observable": "4.0.0", + "yargs-parser": "21.1.1" + }, + "dependencies": { + "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" + } + }, + "inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } + } + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "dev": true + }, + "@babel/core": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "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" + }, + "dependencies": { + "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" + } + }, + "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 + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@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 + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + } + }, + "@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "requires": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + } + }, + "@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2" + } + }, + "@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + } + }, + "@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "requires": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nestjs/cli": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-9.1.5.tgz", + "integrity": "sha512-rSp26+Nv7PFtYrRSP18Gv5ZK8rRSc2SCCF5wh4SdZaVGgkxShpNq9YEfI+ik/uziN3KC5o74ppYRXGj+aHGVsA==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "@angular-devkit/schematics-cli": "14.2.2", + "@nestjs/schematics": "^9.0.0", + "chalk": "3.0.0", + "chokidar": "3.5.3", + "cli-table3": "0.6.2", + "commander": "4.1.1", + "fork-ts-checker-webpack-plugin": "7.2.13", + "inquirer": "7.3.3", + "node-emoji": "1.11.0", + "ora": "5.4.1", + "os-name": "4.0.1", + "rimraf": "3.0.2", + "shelljs": "0.8.5", + "source-map-support": "0.5.21", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.1.0", + "tsconfig-paths-webpack-plugin": "4.0.0", + "typescript": "4.8.4", + "webpack": "5.74.0", + "webpack-node-externals": "3.0.0" + }, + "dependencies": { + "typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true + }, + "webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + } + } + } + }, + "@nestjs/common": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-9.2.0.tgz", + "integrity": "sha512-Ndcqak/ETYi+n1c5lFRPbxKLyUuM6DIOxcvfEFGfi0f6ad4dWDXRDx7z/n8V0l8+Y8djvvOHgf3t0e93w963Qg==", + "requires": { + "iterare": "1.2.1", + "tslib": "2.4.1", + "uuid": "9.0.0" + } + }, + "@nestjs/core": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-9.2.0.tgz", + "integrity": "sha512-eVN7aXAavV+ImVt8mO+rQ5YyUP6lJtQKUtQHxHKzz6Wg+9Y67WWZS2uDcDX5NNcNijbWky5bqad86fgcK9Oqig==", + "requires": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "object-hash": "3.0.0", + "path-to-regexp": "3.2.0", + "tslib": "2.4.1", + "uuid": "9.0.0" + } + }, + "@nestjs/platform-express": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-9.2.0.tgz", + "integrity": "sha512-J1+nnzjC9ATSb0jSHBqAE6D4o+PIbGPItEfYTOZ0rkE5bvqnRfgO4q94SXhfri+5PaNx2vM8tOZsKaD0QmQRGQ==", + "requires": { + "body-parser": "1.20.1", + "cors": "2.8.5", + "express": "4.18.2", + "multer": "1.4.4-lts.1", + "tslib": "2.4.1" + } + }, + "@nestjs/platform-socket.io": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/platform-socket.io/-/platform-socket.io-9.2.0.tgz", + "integrity": "sha512-ttxXtqHV3Cpk5AfZOxfE8urILV5oLBpG21vdyqUHiL0YDuhHdc2tBz5GKSYAfsWefmVeQQiBAV9dqaa23Rf0nQ==", + "requires": { + "socket.io": "4.5.3", + "tslib": "2.4.1" + } + }, + "@nestjs/schematics": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.0.3.tgz", + "integrity": "sha512-kZrU/lrpVd2cnK8I3ibDb3Wi1ppl3wX3U3lVWoL+DzRRoezWKkh8upEL4q0koKmuXnsmLiu3UPxFeMOrJV7TSA==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", + "fs-extra": "10.1.0", + "jsonc-parser": "3.2.0", + "pluralize": "8.0.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "dev": true, + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "dependencies": { + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", + "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.1", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "dependencies": { + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + } + } + }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@nestjs/testing": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-9.2.0.tgz", + "integrity": "sha512-Lj6UXmBJKcXB16bZzu0IG7GpH7hl5Cn71OcPSrVVuPrFd5kDYqFbodfE9OkAKaHjEhOvZ2ynoo/i6cyfX4yOvQ==", + "dev": true, + "requires": { + "tslib": "2.4.1" + } + }, + "@nestjs/websockets": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-9.2.0.tgz", + "integrity": "sha512-AbG4eN9p9O6QmNSOWsk0lrA+CtHkrdDkogcl1sGyTrg+LRd6IUlkaTu9fFK9Hl6o7bs2ieGgDmxAvl+Xd156Aw==", + "requires": { + "iterare": "1.2.1", + "object-hash": "3.0.0", + "tslib": "2.4.1" + } + }, + "@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" + } + }, + "@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "requires": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "@types/cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==", + "dev": true + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "@types/eslint": { + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "28.1.8", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz", + "integrity": "sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==", + "dev": true, + "requires": { + "expect": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "@types/node": { + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/superagent": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.15.tgz", + "integrity": "sha512-mu/N4uvfDN2zVQQ5AYJI/g4qxn2bHB6521t1UuH09ShNWjebTqN0ZFuYK9uYjcgmI0dTQEs+Owi1EO6U0OkOZQ==", + "dev": true, + "requires": { + "@types/cookiejar": "*", + "@types/node": "*" + } + }, + "@types/supertest": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.12.tgz", + "integrity": "sha512-X3HPWTwXRerBZS7Mo1k6vMVR1Z6zmJcDVn5O/31whe0tnjE4te6ZJSJGq1RiqHPjzPdMTfjCFogDJmwng9xHaQ==", + "dev": true, + "requires": { + "@types/superagent": "*" + } + }, + "@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.43.0.tgz", + "integrity": "sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/type-utils": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.43.0.tgz", + "integrity": "sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz", + "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.43.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, + "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": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + } + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "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==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "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-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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 + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "requires": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^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==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "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" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", + "dev": true + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "ci-info": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", + "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true + }, + "cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "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==", + "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==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "cookiejar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "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==", + "requires": { + "ms": "2.1.2" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "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 + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true + }, + "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" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.1.tgz", + "integrity": "sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA==", + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "dependencies": { + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + } + } + }, + "engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==" + }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "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.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "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" + } + }, + "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 + } + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "requires": {} + }, + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "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" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "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" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "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 + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "requires": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "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" + } + }, + "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 + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "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" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + } + } + }, + "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" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "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 + }, + "fork-ts-checker-webpack-plugin": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.13.tgz", + "integrity": "sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "dependencies": { + "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" + } + } + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", + "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "dev": true, + "requires": { + "dezalgo": "1.0.3", + "hexoid": "1.0.0", + "once": "1.4.0", + "qs": "6.9.3" + }, + "dependencies": { + "qs": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", + "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "dev": true + } + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "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==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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": "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" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "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" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "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==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "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" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.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==", + "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==" + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "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" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "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-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==" + }, + "jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "requires": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + } + }, + "jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + } + }, + "jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "requires": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + } + }, + "jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true + }, + "jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "requires": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + } + }, + "jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "dependencies": { + "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" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "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" + } + } + } + }, + "jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "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" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "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": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "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" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "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==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "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 + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + }, + "macos-release": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", + "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "dev": true + }, + "magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memfs": { + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", + "dev": true, + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "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" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multer": { + "version": "1.4.4-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-abort-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz", + "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==", + "dev": true + }, + "node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "requires": { + "lodash": "^4.17.21" + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.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==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "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" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "os-name": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", + "dev": true, + "requires": { + "macos-release": "^2.5.0", + "windows-release": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "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" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "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" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "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==" + }, + "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-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==" + }, + "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 + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "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 + }, + "prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "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 + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "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 + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "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-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "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 + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "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==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "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" + } + }, + "rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "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" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "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 + } + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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 + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "socket.io": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.3.tgz", + "integrity": "sha512-zdpnnKU+H6mOp7nYRXH4GNv1ux6HL6+lHL8g7Ds7Lj8CkdK1jJK/dlwsKDculbyOHifcJ0Pr/yeXnZQ5GeFrcg==", + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.2.0" + } + }, + "socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + }, + "socket.io-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + } + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "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 + }, + "superagent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.3.tgz", + "integrity": "sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA==", + "dev": true, + "requires": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "dependencies": { + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + } + } + }, + "supertest": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.1.tgz", + "integrity": "sha512-hRohNeIfk/cA48Cxpa/w48hktP6ZaRqXb0QV5rLvW0C7paRsBU3Q5zydzYrslOJtj/gd48qx540jKtcs6vG1fQ==", + "dev": true, + "requires": { + "methods": "^1.1.2", + "superagent": "^8.0.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.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 + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "dependencies": { + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "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 + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "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" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "ts-jest": { + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^28.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + } + }, + "ts-loader": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.1.tgz", + "integrity": "sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "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" + } + } + } + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz", + "integrity": "sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow==", + "dev": true, + "requires": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "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 + } + } + }, + "tsconfig-paths-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "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-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "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 + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "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" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "webpack": { + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "dev": true, + "peer": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + } + }, + "webpack-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "dev": true + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.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" + } + }, + "windows-release": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", + "dev": true, + "requires": { + "execa": "^4.0.2" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + } + } + }, + "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 + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "requires": {} + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "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 + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "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/tests_hugo/chat_nest/chat_server/package.json b/tests_hugo/chat_nest/chat_server/package.json new file mode 100644 index 00000000..a19cd29f --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/package.json @@ -0,0 +1,74 @@ +{ + "name": "chat", + "version": "0.0.1", + "description": "", + "author": "", + "private": true, + "license": "UNLICENSED", + "scripts": { + "prebuild": "rimraf dist", + "build": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "start": "nest start", + "start:dev": "nest start --watch", + "start:debug": "nest start --debug --watch", + "start:prod": "node dist/main", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:e2e": "jest --config ./test/jest-e2e.json" + }, + "dependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/platform-express": "^9.0.0", + "@nestjs/platform-socket.io": "^9.2.0", + "@nestjs/websockets": "^9.2.0", + "reflect-metadata": "^0.1.13", + "rimraf": "^3.0.2", + "rxjs": "^7.2.0", + "socket.io": "^4.5.3" + }, + "devDependencies": { + "@nestjs/cli": "^9.0.0", + "@nestjs/schematics": "^9.0.0", + "@nestjs/testing": "^9.0.0", + "@types/express": "^4.17.13", + "@types/jest": "28.1.8", + "@types/node": "^16.0.0", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^8.0.1", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "28.1.3", + "prettier": "^2.3.2", + "source-map-support": "^0.5.20", + "supertest": "^6.1.3", + "ts-jest": "28.0.8", + "ts-loader": "^9.2.3", + "ts-node": "^10.0.0", + "tsconfig-paths": "4.1.0", + "typescript": "^4.7.4" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + }, + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "testEnvironment": "node" + } +} diff --git a/tests_hugo/chat_nest/chat_server/src/app.controller.ts b/tests_hugo/chat_nest/chat_server/src/app.controller.ts new file mode 100644 index 00000000..e605fe56 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/src/app.controller.ts @@ -0,0 +1,7 @@ +import { Controller, Get } from '@nestjs/common'; + +@Controller() +export class AppController { + @Get() + place_holder() {} +} diff --git a/tests_hugo/chat_nest/chat_server/src/app.module.ts b/tests_hugo/chat_nest/chat_server/src/app.module.ts new file mode 100644 index 00000000..fe2b35c1 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/src/app.module.ts @@ -0,0 +1,7 @@ +import { Module } from '@nestjs/common'; +import { ChatGateway } from './chat.gateway'; + +@Module({ + providers: [ChatGateway], +}) +export class AppModule {} diff --git a/tests_hugo/chat_nest/chat_server/src/chat.gateway.ts b/tests_hugo/chat_nest/chat_server/src/chat.gateway.ts new file mode 100644 index 00000000..dfccf07d --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/src/chat.gateway.ts @@ -0,0 +1,24 @@ +import { + WebSocketGateway, + SubscribeMessage, + WebSocketServer, + MessageBody, +} from '@nestjs/websockets'; + +@WebSocketGateway({ + cors: { + origin: '*', + }, +}) +export class ChatGateway { + @WebSocketServer() + server; + + @SubscribeMessage('message') + handleMessage(@MessageBody() message: string): void { + console.log("message received:"); + console.log(`[${message}]`); + this.server.emit('message', message); + } +} + diff --git a/tests_hugo/chat_nest/chat_server/src/main.ts b/tests_hugo/chat_nest/chat_server/src/main.ts new file mode 100644 index 00000000..13cad38c --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/src/main.ts @@ -0,0 +1,8 @@ +import { NestFactory } from '@nestjs/core'; +import { AppModule } from './app.module'; + +async function bootstrap() { + const app = await NestFactory.create(AppModule); + await app.listen(3000); +} +bootstrap(); diff --git a/tests_hugo/chat_nest/chat_server/test/app.e2e-spec.ts b/tests_hugo/chat_nest/chat_server/test/app.e2e-spec.ts new file mode 100644 index 00000000..50cda623 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/test/app.e2e-spec.ts @@ -0,0 +1,24 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppModule } from './../src/app.module'; + +describe('AppController (e2e)', () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + it('/ (GET)', () => { + return request(app.getHttpServer()) + .get('/') + .expect(200) + .expect('Hello World!'); + }); +}); diff --git a/tests_hugo/chat_nest/chat_server/test/jest-e2e.json b/tests_hugo/chat_nest/chat_server/test/jest-e2e.json new file mode 100644 index 00000000..e9d912f3 --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/test/jest-e2e.json @@ -0,0 +1,9 @@ +{ + "moduleFileExtensions": ["js", "json", "ts"], + "rootDir": ".", + "testEnvironment": "node", + "testRegex": ".e2e-spec.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } +} diff --git a/tests_hugo/chat_nest/chat_server/tsconfig.build.json b/tests_hugo/chat_nest/chat_server/tsconfig.build.json new file mode 100644 index 00000000..64f86c6b --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] +} diff --git a/tests_hugo/chat_nest/chat_server/tsconfig.json b/tests_hugo/chat_nest/chat_server/tsconfig.json new file mode 100644 index 00000000..adb614ca --- /dev/null +++ b/tests_hugo/chat_nest/chat_server/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "es2017", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./", + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": false, + "noImplicitAny": false, + "strictBindCallApply": false, + "forceConsistentCasingInFileNames": false, + "noFallthroughCasesInSwitch": false + } +} diff --git a/tests_hugo/chat_nest_2/.eslintrc.js b/tests_hugo/chat_nest_2/.eslintrc.js new file mode 100644 index 00000000..8bcc5575 --- /dev/null +++ b/tests_hugo/chat_nest_2/.eslintrc.js @@ -0,0 +1,22 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + tsconfigRootDir : __dirname, + sourceType: 'module', + }, + plugins: ['@typescript-eslint/eslint-plugin'], + extends: [], + root: true, + env: { + node: true, + jest: true, + }, + ignorePatterns: ['.eslintrc.js'], + rules: { + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + }, +}; diff --git a/tests_hugo/chat_nest_2/.prettierrc b/tests_hugo/chat_nest_2/.prettierrc new file mode 100644 index 00000000..dcb72794 --- /dev/null +++ b/tests_hugo/chat_nest_2/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "trailingComma": "all" +} \ No newline at end of file diff --git a/tests_hugo/chat_nest_2/README.md b/tests_hugo/chat_nest_2/README.md new file mode 100644 index 00000000..00a13b11 --- /dev/null +++ b/tests_hugo/chat_nest_2/README.md @@ -0,0 +1,73 @@ +

+ Nest Logo +

+ +[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 +[circleci-url]: https://circleci.com/gh/nestjs/nest + +

A progressive Node.js framework for building efficient and scalable server-side applications.

+

+NPM Version +Package License +NPM Downloads +CircleCI +Coverage +Discord +Backers on Open Collective +Sponsors on Open Collective + + Support us + +

+ + +## Description + +[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. + +## Installation + +```bash +$ npm install +``` + +## Running the app + +```bash +# development +$ npm run start + +# watch mode +$ npm run start:dev + +# production mode +$ npm run start:prod +``` + +## Test + +```bash +# unit tests +$ npm run test + +# e2e tests +$ npm run test:e2e + +# test coverage +$ npm run test:cov +``` + +## Support + +Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). + +## Stay in touch + +- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) +- Website - [https://nestjs.com](https://nestjs.com/) +- Twitter - [@nestframework](https://twitter.com/nestframework) + +## License + +Nest is [MIT licensed](LICENSE). diff --git a/tests_hugo/chat_nest_2/dist/app.controller.d.ts b/tests_hugo/chat_nest_2/dist/app.controller.d.ts new file mode 100644 index 00000000..5308f5c2 --- /dev/null +++ b/tests_hugo/chat_nest_2/dist/app.controller.d.ts @@ -0,0 +1,3 @@ +export declare class AppController { + getHello(): void; +} diff --git a/tests_hugo/chat_nest_2/dist/app.controller.js b/tests_hugo/chat_nest_2/dist/app.controller.js new file mode 100644 index 00000000..0a693a13 --- /dev/null +++ b/tests_hugo/chat_nest_2/dist/app.controller.js @@ -0,0 +1,27 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppController = void 0; +const common_1 = require("@nestjs/common"); +let AppController = class AppController { + getHello() { } +}; +__decorate([ + (0, common_1.Get)(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], AppController.prototype, "getHello", null); +AppController = __decorate([ + (0, common_1.Controller)() +], AppController); +exports.AppController = AppController; +//# sourceMappingURL=app.controller.js.map \ No newline at end of file diff --git a/tests_hugo/chat_nest_2/dist/app.controller.js.map b/tests_hugo/chat_nest_2/dist/app.controller.js.map new file mode 100644 index 00000000..f0e259b8 --- /dev/null +++ b/tests_hugo/chat_nest_2/dist/app.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.controller.js","sourceRoot":"","sources":["../src/app.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AAG1C,IAAM,aAAa,GAAnB,MAAM,aAAa;IAGxB,QAAQ,KAAI,CAAC;CACd,CAAA;AAFC;IAAC,IAAA,YAAG,GAAE;;;;6CACO;AAHF,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAIzB;AAJY,sCAAa"} \ No newline at end of file diff --git a/tests_hugo/chat_nest_2/dist/app.module.d.ts b/tests_hugo/chat_nest_2/dist/app.module.d.ts new file mode 100644 index 00000000..09cdb35c --- /dev/null +++ b/tests_hugo/chat_nest_2/dist/app.module.d.ts @@ -0,0 +1,2 @@ +export declare class AppModule { +} diff --git a/tests_hugo/chat_nest_2/dist/app.module.js b/tests_hugo/chat_nest_2/dist/app.module.js new file mode 100644 index 00000000..402b37a9 --- /dev/null +++ b/tests_hugo/chat_nest_2/dist/app.module.js @@ -0,0 +1,22 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppModule = void 0; +const common_1 = require("@nestjs/common"); +const app_controller_1 = require("./app.controller"); +let AppModule = class AppModule { +}; +AppModule = __decorate([ + (0, common_1.Module)({ + imports: [], + controllers: [app_controller_1.AppController], + providers: [], + }) +], AppModule); +exports.AppModule = AppModule; +//# sourceMappingURL=app.module.js.map \ No newline at end of file diff --git a/tests_hugo/chat_nest_2/dist/app.module.js.map b/tests_hugo/chat_nest_2/dist/app.module.js.map new file mode 100644 index 00000000..bcbe3620 --- /dev/null +++ b/tests_hugo/chat_nest_2/dist/app.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AAO1C,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IALrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,EAAE;KACd,CAAC;GACW,SAAS,CAAG;AAAZ,8BAAS"} \ No newline at end of file diff --git a/tests_hugo/chat_nest_2/dist/main.d.ts b/tests_hugo/chat_nest_2/dist/main.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/tests_hugo/chat_nest_2/dist/main.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/tests_hugo/chat_nest_2/dist/main.js b/tests_hugo/chat_nest_2/dist/main.js new file mode 100644 index 00000000..687ee10b --- /dev/null +++ b/tests_hugo/chat_nest_2/dist/main.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const core_1 = require("@nestjs/core"); +const app_module_1 = require("./app.module"); +async function bootstrap() { + const app = await core_1.NestFactory.create(app_module_1.AppModule); + await app.listen(8000); +} +bootstrap(); +//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/tests_hugo/chat_nest_2/dist/main.js.map b/tests_hugo/chat_nest_2/dist/main.js.map new file mode 100644 index 00000000..721361b2 --- /dev/null +++ b/tests_hugo/chat_nest_2/dist/main.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,6CAAyC;AAEzC,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;IAChD,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AACD,SAAS,EAAE,CAAC"} \ No newline at end of file diff --git a/tests_hugo/chat_nest_2/dist/tsconfig.build.tsbuildinfo b/tests_hugo/chat_nest_2/dist/tsconfig.build.tsbuildinfo new file mode 100644 index 00000000..2f99de03 --- /dev/null +++ b/tests_hugo/chat_nest_2/dist/tsconfig.build.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.es2017.full.d.ts","../node_modules/reflect-metadata/index.d.ts","../node_modules/@nestjs/common/cache/cache.constants.d.ts","../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts","../node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.d.ts","../node_modules/@nestjs/common/interfaces/controllers/controller.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts","../node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts","../node_modules/rxjs/dist/types/internal/Subscription.d.ts","../node_modules/rxjs/dist/types/internal/Subscriber.d.ts","../node_modules/rxjs/dist/types/internal/Operator.d.ts","../node_modules/rxjs/dist/types/internal/Observable.d.ts","../node_modules/rxjs/dist/types/internal/types.d.ts","../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../node_modules/rxjs/dist/types/internal/operators/auditTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferCount.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferToggle.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/catchError.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineLatestAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineLatest.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineLatestWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatMapTo.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../node_modules/rxjs/dist/types/internal/operators/debounceTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/defaultIfEmpty.d.ts","../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../node_modules/rxjs/dist/types/internal/operators/delayWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinctUntilChanged.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinctUntilKeyChanged.d.ts","../node_modules/rxjs/dist/types/internal/operators/elementAt.d.ts","../node_modules/rxjs/dist/types/internal/operators/endWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaustAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaustMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../node_modules/rxjs/dist/types/internal/operators/findIndex.d.ts","../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../node_modules/rxjs/dist/types/internal/Subject.d.ts","../node_modules/rxjs/dist/types/internal/operators/groupBy.d.ts","../node_modules/rxjs/dist/types/internal/operators/ignoreElements.d.ts","../node_modules/rxjs/dist/types/internal/operators/isEmpty.d.ts","../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../node_modules/rxjs/dist/types/internal/operators/mapTo.d.ts","../node_modules/rxjs/dist/types/internal/Notification.d.ts","../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/flatMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeMapTo.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeScan.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../node_modules/rxjs/dist/types/internal/observable/ConnectableObservable.d.ts","../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../node_modules/rxjs/dist/types/internal/operators/observeOn.d.ts","../node_modules/rxjs/dist/types/internal/operators/onErrorResumeNext.d.ts","../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishBehavior.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishLast.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishReplay.d.ts","../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../node_modules/rxjs/dist/types/internal/operators/raceWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../node_modules/rxjs/dist/types/internal/operators/repeatWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../node_modules/rxjs/dist/types/internal/operators/retryWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/refCount.d.ts","../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../node_modules/rxjs/dist/types/internal/operators/sampleTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../node_modules/rxjs/dist/types/internal/operators/sequenceEqual.d.ts","../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../node_modules/rxjs/dist/types/internal/operators/shareReplay.d.ts","../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../node_modules/rxjs/dist/types/internal/operators/skipLast.d.ts","../node_modules/rxjs/dist/types/internal/operators/skipUntil.d.ts","../node_modules/rxjs/dist/types/internal/operators/skipWhile.d.ts","../node_modules/rxjs/dist/types/internal/operators/startWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/subscribeOn.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchMapTo.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchScan.d.ts","../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../node_modules/rxjs/dist/types/internal/operators/takeLast.d.ts","../node_modules/rxjs/dist/types/internal/operators/takeUntil.d.ts","../node_modules/rxjs/dist/types/internal/operators/takeWhile.d.ts","../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../node_modules/rxjs/dist/types/internal/operators/throttleTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/throwIfEmpty.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeInterval.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeoutWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../node_modules/rxjs/dist/types/internal/operators/toArray.d.ts","../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowCount.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowToggle.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/withLatestFrom.d.ts","../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../node_modules/rxjs/dist/types/internal/operators/zipAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/zipWith.d.ts","../node_modules/rxjs/dist/types/operators/index.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/Action.d.ts","../node_modules/rxjs/dist/types/internal/Scheduler.d.ts","../node_modules/rxjs/dist/types/internal/testing/TestMessage.d.ts","../node_modules/rxjs/dist/types/internal/testing/SubscriptionLog.d.ts","../node_modules/rxjs/dist/types/internal/testing/SubscriptionLoggable.d.ts","../node_modules/rxjs/dist/types/internal/testing/ColdObservable.d.ts","../node_modules/rxjs/dist/types/internal/testing/HotObservable.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AsyncScheduler.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/timerHandle.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AsyncAction.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/VirtualTimeScheduler.d.ts","../node_modules/rxjs/dist/types/internal/testing/TestScheduler.d.ts","../node_modules/rxjs/dist/types/testing/index.d.ts","../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../node_modules/rxjs/dist/types/internal/observable/dom/animationFrames.d.ts","../node_modules/rxjs/dist/types/internal/BehaviorSubject.d.ts","../node_modules/rxjs/dist/types/internal/ReplaySubject.d.ts","../node_modules/rxjs/dist/types/internal/AsyncSubject.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AsapScheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/QueueScheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AnimationFrameScheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/animationFrame.d.ts","../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../node_modules/rxjs/dist/types/internal/util/isObservable.d.ts","../node_modules/rxjs/dist/types/internal/lastValueFrom.d.ts","../node_modules/rxjs/dist/types/internal/firstValueFrom.d.ts","../node_modules/rxjs/dist/types/internal/util/ArgumentOutOfRangeError.d.ts","../node_modules/rxjs/dist/types/internal/util/EmptyError.d.ts","../node_modules/rxjs/dist/types/internal/util/NotFoundError.d.ts","../node_modules/rxjs/dist/types/internal/util/ObjectUnsubscribedError.d.ts","../node_modules/rxjs/dist/types/internal/util/SequenceError.d.ts","../node_modules/rxjs/dist/types/internal/util/UnsubscriptionError.d.ts","../node_modules/rxjs/dist/types/internal/observable/bindCallback.d.ts","../node_modules/rxjs/dist/types/internal/observable/bindNodeCallback.d.ts","../node_modules/rxjs/dist/types/internal/AnyCatcher.d.ts","../node_modules/rxjs/dist/types/internal/observable/combineLatest.d.ts","../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../node_modules/rxjs/dist/types/internal/observable/forkJoin.d.ts","../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../node_modules/rxjs/dist/types/internal/observable/fromEvent.d.ts","../node_modules/rxjs/dist/types/internal/observable/fromEventPattern.d.ts","../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../node_modules/rxjs/dist/types/internal/observable/onErrorResumeNext.d.ts","../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../node_modules/rxjs/dist/types/internal/observable/throwError.d.ts","../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../node_modules/rxjs/dist/types/internal/config.d.ts","../node_modules/rxjs/dist/types/index.d.ts","../node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.d.ts","../node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/validation-error.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/paramtype.interface.d.ts","../node_modules/@nestjs/common/interfaces/type.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts","../node_modules/@nestjs/common/enums/request-method.enum.d.ts","../node_modules/@nestjs/common/enums/http-status.enum.d.ts","../node_modules/@nestjs/common/enums/shutdown-signal.enum.d.ts","../node_modules/@nestjs/common/enums/version-type.enum.d.ts","../node_modules/@nestjs/common/enums/index.d.ts","../node_modules/@nestjs/common/interfaces/version-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/nest-middleware.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/index.d.ts","../node_modules/@nestjs/common/interfaces/global-prefix-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/before-application-shutdown.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-application-bootstrap.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-application-shutdown.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-destroy.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-init.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/index.d.ts","../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/https-options.interface.d.ts","../node_modules/@nestjs/common/services/logger.service.d.ts","../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/http-server.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/message-event.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/raw-body-request.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/index.d.ts","../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts","../node_modules/@nestjs/common/interfaces/microservices/nest-hybrid-application-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.d.ts","../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/injection-token.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/optional-factory-dependency.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/provider.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/nest-module.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/index.d.ts","../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts","../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts","../node_modules/@nestjs/common/interfaces/nest-application.interface.d.ts","../node_modules/@nestjs/common/interfaces/nest-microservice.interface.d.ts","../node_modules/@nestjs/common/interfaces/index.d.ts","../node_modules/@nestjs/common/module-utils/constants.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/configurable-module-async-options.interface.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/configurable-module-cls.interface.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/configurable-module-host.interface.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/index.d.ts","../node_modules/@nestjs/common/module-utils/configurable-module.builder.d.ts","../node_modules/@nestjs/common/module-utils/index.d.ts","../node_modules/@nestjs/common/cache/interfaces/cache-manager.interface.d.ts","../node_modules/@nestjs/common/cache/interfaces/cache-module.interface.d.ts","../node_modules/@nestjs/common/cache/cache.module-definition.d.ts","../node_modules/@nestjs/common/cache/cache.module.d.ts","../node_modules/@nestjs/common/decorators/core/bind.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/catch.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/controller.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/dependencies.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/exception-filters.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/inject.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/injectable.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/optional.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/set-metadata.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/use-guards.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/use-pipes.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/apply-decorators.d.ts","../node_modules/@nestjs/common/decorators/core/version.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/index.d.ts","../node_modules/@nestjs/common/decorators/modules/global.decorator.d.ts","../node_modules/@nestjs/common/decorators/modules/module.decorator.d.ts","../node_modules/@nestjs/common/decorators/modules/index.d.ts","../node_modules/@nestjs/common/decorators/http/request-mapping.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/route-params.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/http-code.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/render.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/header.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/redirect.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/sse.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/index.d.ts","../node_modules/@nestjs/common/decorators/index.d.ts","../node_modules/@nestjs/common/cache/decorators/cache-key.decorator.d.ts","../node_modules/@nestjs/common/cache/decorators/cache-ttl.decorator.d.ts","../node_modules/@nestjs/common/cache/decorators/index.d.ts","../node_modules/@nestjs/common/cache/interceptors/cache.interceptor.d.ts","../node_modules/@nestjs/common/cache/interceptors/index.d.ts","../node_modules/@nestjs/common/cache/interfaces/index.d.ts","../node_modules/@nestjs/common/cache/index.d.ts","../node_modules/@nestjs/common/exceptions/http.exception.d.ts","../node_modules/@nestjs/common/exceptions/bad-request.exception.d.ts","../node_modules/@nestjs/common/exceptions/unauthorized.exception.d.ts","../node_modules/@nestjs/common/exceptions/method-not-allowed.exception.d.ts","../node_modules/@nestjs/common/exceptions/not-found.exception.d.ts","../node_modules/@nestjs/common/exceptions/forbidden.exception.d.ts","../node_modules/@nestjs/common/exceptions/not-acceptable.exception.d.ts","../node_modules/@nestjs/common/exceptions/request-timeout.exception.d.ts","../node_modules/@nestjs/common/exceptions/conflict.exception.d.ts","../node_modules/@nestjs/common/exceptions/gone.exception.d.ts","../node_modules/@nestjs/common/exceptions/payload-too-large.exception.d.ts","../node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.d.ts","../node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.d.ts","../node_modules/@nestjs/common/exceptions/internal-server-error.exception.d.ts","../node_modules/@nestjs/common/exceptions/not-implemented.exception.d.ts","../node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.d.ts","../node_modules/@nestjs/common/exceptions/bad-gateway.exception.d.ts","../node_modules/@nestjs/common/exceptions/service-unavailable.exception.d.ts","../node_modules/@nestjs/common/exceptions/gateway-timeout.exception.d.ts","../node_modules/@nestjs/common/exceptions/im-a-teapot.exception.d.ts","../node_modules/@nestjs/common/exceptions/precondition-failed.exception.d.ts","../node_modules/@nestjs/common/exceptions/misdirected.exception.d.ts","../node_modules/@nestjs/common/exceptions/index.d.ts","../node_modules/@nestjs/common/file-stream/streamable-options.interface.d.ts","../node_modules/@nestjs/common/file-stream/streamable-file.d.ts","../node_modules/@nestjs/common/file-stream/index.d.ts","../node_modules/@nestjs/common/pipes/default-value.pipe.d.ts","../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/transformer-package.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/validator-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/validator-package.interface.d.ts","../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts","../node_modules/@nestjs/common/pipes/validation.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-array.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-bool.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-int.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-float.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-enum.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-uuid.pipe.d.ts","../node_modules/@nestjs/common/pipes/file/file-validator.interface.d.ts","../node_modules/@nestjs/common/pipes/file/file-type.validator.d.ts","../node_modules/@nestjs/common/pipes/file/max-file-size.validator.d.ts","../node_modules/@nestjs/common/pipes/file/parse-file-options.interface.d.ts","../node_modules/@nestjs/common/pipes/file/parse-file.pipe.d.ts","../node_modules/@nestjs/common/pipes/file/parse-file-pipe.builder.d.ts","../node_modules/@nestjs/common/pipes/file/index.d.ts","../node_modules/@nestjs/common/pipes/index.d.ts","../node_modules/@nestjs/common/serializer/class-serializer.interfaces.d.ts","../node_modules/@nestjs/common/serializer/class-serializer.interceptor.d.ts","../node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.d.ts","../node_modules/@nestjs/common/serializer/decorators/index.d.ts","../node_modules/@nestjs/common/serializer/index.d.ts","../node_modules/@nestjs/common/services/console-logger.service.d.ts","../node_modules/@nestjs/common/services/index.d.ts","../node_modules/@nestjs/common/utils/forward-ref.util.d.ts","../node_modules/@nestjs/common/utils/index.d.ts","../node_modules/@nestjs/common/index.d.ts","../src/app.controller.ts","../src/app.module.ts","../node_modules/@nestjs/core/adapters/http-adapter.d.ts","../node_modules/@nestjs/core/adapters/index.d.ts","../node_modules/@nestjs/core/injector/module-token-factory.d.ts","../node_modules/@nestjs/core/injector/compiler.d.ts","../node_modules/@nestjs/core/injector/modules-container.d.ts","../node_modules/@nestjs/core/injector/container.d.ts","../node_modules/@nestjs/core/injector/injector.d.ts","../node_modules/@nestjs/core/injector/instance-links-host.d.ts","../node_modules/@nestjs/core/injector/abstract-instance-resolver.d.ts","../node_modules/@nestjs/core/injector/module-ref.d.ts","../node_modules/@nestjs/core/injector/module.d.ts","../node_modules/@nestjs/core/injector/instance-wrapper.d.ts","../node_modules/@nestjs/core/router/interfaces/exclude-route-metadata.interface.d.ts","../node_modules/@nestjs/core/application-config.d.ts","../node_modules/@nestjs/core/constants.d.ts","../node_modules/@nestjs/core/discovery/discovery-module.d.ts","../node_modules/@nestjs/core/discovery/discovery-service.d.ts","../node_modules/@nestjs/core/discovery/index.d.ts","../node_modules/@nestjs/core/helpers/http-adapter-host.d.ts","../node_modules/@nestjs/core/exceptions/base-exception-filter.d.ts","../node_modules/@nestjs/core/exceptions/index.d.ts","../node_modules/@nestjs/core/helpers/context-id-factory.d.ts","../node_modules/@nestjs/core/helpers/index.d.ts","../node_modules/@nestjs/core/injector/inquirer/inquirer-constants.d.ts","../node_modules/@nestjs/core/injector/inquirer/index.d.ts","../node_modules/@nestjs/core/metadata-scanner.d.ts","../node_modules/@nestjs/core/scanner.d.ts","../node_modules/@nestjs/core/injector/instance-loader.d.ts","../node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader-options.interface.d.ts","../node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader.d.ts","../node_modules/@nestjs/core/injector/index.d.ts","../node_modules/@nestjs/core/middleware/routes-mapper.d.ts","../node_modules/@nestjs/core/middleware/builder.d.ts","../node_modules/@nestjs/core/middleware/index.d.ts","../node_modules/@nestjs/core/nest-application-context.d.ts","../node_modules/@nestjs/core/nest-application.d.ts","../node_modules/@nestjs/common/interfaces/microservices/nest-microservice-options.interface.d.ts","../node_modules/@nestjs/core/nest-factory.d.ts","../node_modules/@nestjs/core/repl/repl.d.ts","../node_modules/@nestjs/core/repl/index.d.ts","../node_modules/@nestjs/core/router/interfaces/routes.interface.d.ts","../node_modules/@nestjs/core/router/interfaces/index.d.ts","../node_modules/@nestjs/core/router/request/request-constants.d.ts","../node_modules/@nestjs/core/router/request/index.d.ts","../node_modules/@nestjs/core/router/router-module.d.ts","../node_modules/@nestjs/core/router/index.d.ts","../node_modules/@nestjs/core/services/reflector.service.d.ts","../node_modules/@nestjs/core/services/index.d.ts","../node_modules/@nestjs/core/index.d.ts","../src/main.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/@types/connect/index.d.ts","../node_modules/@types/body-parser/index.d.ts","../node_modules/@types/cookiejar/index.d.ts","../node_modules/@types/eslint/helpers.d.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/eslint/index.d.ts","../node_modules/@types/eslint-scope/index.d.ts","../node_modules/@types/range-parser/index.d.ts","../node_modules/@types/qs/index.d.ts","../node_modules/@types/express-serve-static-core/index.d.ts","../node_modules/@types/mime/Mime.d.ts","../node_modules/@types/mime/index.d.ts","../node_modules/@types/serve-static/index.d.ts","../node_modules/@types/express/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/@jest/expect-utils/build/index.d.ts","../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../node_modules/@sinclair/typebox/typebox.d.ts","../node_modules/@jest/schemas/build/index.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/expect/build/index.d.ts","../node_modules/@types/jest/index.d.ts","../node_modules/@types/parse-json/index.d.ts","../node_modules/@types/prettier/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/buffer/index.d.ts","../node_modules/@types/superagent/index.d.ts","../node_modules/@types/supertest/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"d2f31f19e1ba6ed59be9259d660a239d9a3fcbbc8e038c6b2009bde34b175fed",{"version":"8d6d51a5118d000ed3bfe6e1dd1335bebfff3fef23cd2af2f84a24d30f90cc90","affectsGlobalScope":true},"3284e33a45d6aa8324691ac5737d08695e35e99b5f69fdc9ef21b3c7e7fd8449","e89535c3ec439608bcd0f68af555d0e5ddf121c54abe69343549718bd7506b9c","622a984b60c294ffb2f9152cf1d4d12e91d2b733d820eec949cf54d63a3c1025","1a25c4d02a013b4690efa24ab48184a2c10b1906a379565ba558b2c3ba679a6d","ba6f9c5491bcf018dbbc813e1dd488beb26f876b825007ba76db485df341a8ee","75b57b109d774acca1e151df21cf5cb54c7a1df33a273f0457b9aee4ebd36fb9","fa3d0cd03fa17459d9ddd98b120b4bb084da39f0391cbdce480a6ef74be0cc7a","e3fd84e6470b7e0679c4073ee5ce971d324182486dde5a49b67cae29168b51d2","dd8331d0a5190a4735ce6c152e420230188c4966067a756673c36dd7ba72b10e","cfdf36cfc0721c29f58651fc12f0f5a349d29da3a63180afc5b3d77b95653f82",{"version":"d57e7ff5243e0dcd04cf2edf9ad9520af40edd6eba31c14c3f405f0c437fa379","affectsGlobalScope":true},"0f882d4ae58f431454030289154feb0132e1b00ca5c3197c6b749bd098aed73a","7ff7f4632a6e7b6872fb1843f3c0df495b49840eae2a23c6fbc943f863da8c29","d267771149e172ade39e3ef96b4063209d5a7e8291702fe03983aa52f2b3d5f6","a78590b0efcef281236e3234520c348d63be1d4561b63b20e6c3b6fc18b37dfb","4d59c6a10b6c79a0927c79efa89b3c9f71d174ec14ec2792076cfd2330d0cf8e","a496f51933422872de22729b7a0233589325a1a1707cccd05cd914098944a202","75b6663bc569724017997481b6b3774065c204b316cb4f5ad7df3b5162d2dce1","06a38095ad4368314366bc08f7cbc0fe274ef7321ec611005d0bdd9c6565e4d5","4599793db9aed9b84677f0ca1cf7ef3c69bb91cda4fe4329cbab778ca4d80a58","ad0028f96921778931fb8419d8de33b10908314fa99699de1702020f69235da1","ccd2a35321c0786bd3808042dc43b960cac13f2cc660ac37a0087e12bc97d2fc","df524ed01de4f19efb44bded628dbba9f840148be4b6cfe096e29d4b01589de3","2e3981b9cee48174ff85ae15019fd72933f7023a4ed05094740f7e6f7775623c","836ebdc3b9e4c006acc4f405b7e558e56d47830e05c40d991b1e27fe8bc91157","2cc6b617c6120ba64b5778ccd4b74c951adc3a3941bb6b39f47d48701c44af39","eca02b99615a8f1652e21399d832618e38bf166c0747c9247349bc901a2f7741","7f7d6d42e5780e86f5b860a6f95179fae06a368b3af28c1c4230397c47021a59","4740a7d11ab3b381be0f269f1903fb3ff226a2fba55a01756b2997e67cd853f2","863dbc4e77f0353e6f9d6bc0e2b4622d5c07ff6f099ff66cafd7924b2ff4dd3f","bf034a18ed7e2a058f9e48c4c2480a124138fbd3586a80c77736a9ec079d12a8","f88758992a0bf13d095520aacd4381fb456ff121fb9aa184e6eb0eecb26cfadc","c249e9ae33bfcad97deec3c73c9ed2656e112fbdf22deace0b39724be6a5dcf0","d8b45924965c0c4fc0b946c0b6d597aa8d5de9cdf5c727e3d39422d17efec438","d07ea953cfea0c4bd11641912846bd955f4fd26ad2b7b8a279d69c7ab9cb3add","feddabf6ab0eb191e721f0126f3db8688db97c77a1234968bde7a2d70c4ae513","dbbda62ea5f4d1f8b40cc2b7e2e2fae424abbb4715a04a3659cb8b317f7b228b","cde0568b836865a24f4ee5859462004a326dfb76d514e6f56c8e78feedebed58","7f5cb3a03588ed46d52a6c2138315d930cd6ffb5c2134247cd07bc23cbea0b5a","7797f4c91491dcb0f21fa318fd8a1014990d5a72f8a32de2af06eb4d4476a3b5","f39fb20b83c3f9853c13d4ac95533760979d3023c0a5affe2c0a62d91ab3afd8","e4fca08aed8afb32bb8643d7469810bc8681115fe398e56a028df9e73b2d867f","2622639d24718ddfccc33a9a6daf5a2dd94d540ca41e3da00fe365d2c3f25db3","078966067552650f44ca96c68eddbb8539f30ee48a9ab3f24abdcf0a4037b535","2cd6250c43dba360377481c98d48db6ab1532a7527339edb0deffddc28ba66b1","7a9d600990fbe263a23daebed9ba1bbc5761e45679a7e2b2774a42756ef077a2","66bc155515fbea8c31a4efccbbac44de7c037b01f3aa00b76312cf7252725d30","5703288ddbfc4f7845cdbf80c6af17c8cde2a228757479796c2378b1662fcd48","0dfd353f0c16dd5107a7e0713dc52d0a2538293b0a0eac6000a017f9c0a60b56","9cd683a4663ef4d9c6486f1b8a34c73bdbc344d69490931bfe2fbcada12ab35b","42f6a409bad5259ece69df25d2b8ace2ff2ade45fe6386ee45203bdd9329f971","d3b1a8b87a5e77d70056325e137a0e04d984b991546fdd3c1034ff4102d603c4","2eb162efd6dba5972b9f8f85141d900d09da4fba23864f287f98f9890a05e95f","3f878fb5be9ebe8bd0ac5c22515d42b8b72d3745ef7617e73e9b2548ccbdf54b","e9ed562b7599c8c8c01595891480a30f9945a93a46456d22ee67ebf346b7538a","e7bf975a98cecefe2e8902fb7da9314675ecdce553aea722aaec97327668e18b","3d36f93648518338c875d9f77a8eab52905365483dbb3afe43ed68f1b712b67c","4fa54df9184d291bd78b36f5063372042cd995460e906cb14014e40d1442a326","b4e32bd5e3b493e4ea6b5ec69a4c02aa1fdaa78e1df9a863bb07604de8f9d123","f6bd1aa152ca2b5064e06282ee3137842ae6825b6b09aa89a2ff063b976a56f3","bce2390bb3a76f8bf2ba4397c66db5277bf3e698ee614347e5eb79d7fc0942c6","fbdc8d7cc7daf4101bf567512c67fb990d8fe300e0ba7f213171192177f44aa0","298e0da6d858e39fc0c1eebfa4f5c8af487868c6f2e98c3ef800537d402fb5c3","3b6457fb3866562d279377f923cf3758c80ed7bfcc19414b72a24d0a98188e0c","4fb5d7efb3520b92c1b767ce18968057c5e70886d7fb3416c487231df9275af9","df2303a61eb57b2717d17123e82bc0f3fd60f6e4673cb5506192dfe23c9480bf","b104960f4c5f807535ab43282356b2fe29c5d14a02035c623ac2012be3d5f76c","a35ca245eb852b70b20300546443abb1fcbac6e5066e4baaa092af4ea614d9b5","55da140feab55f10a538a9879a97c4be3df4934cbd679665c91a7263a86095e1","1a39e51e3362aec7d4edec9b317ff83916fe0471f86ddf2d3ef3af5952e87d9e","4b3f36b96f129a8e125c91d41a05f711e73b3285f80bceb3a1aecb13c97c4502","852779920fc4220bc42ec6d3c9b6164e23ea9371a788531b48b4005fe0cb4392","9a82e1b959524c1abfeeb024ee1a400234130a341f2b90a313ce4e37833b7dd2","515b97cede17d91c9669cc1c7fb7a8a5f0a5f2d8999f925a5f70b4ebea93723e","08e8e57241f874bdbf69ab2b65cb0ee18b4183d5c9452937da49b934fc679c4b","944af466f063d4bd090ab9d988c620b90a014e919d5f78963f6074a136ea225e","644addd4811636da491c9546654bc005ba8599f23df6d731d91eba86f3137fc2","a9249493114b181814728cbfeb7234738193a4169b654ec4705d48d7a4d25222","aad6f20d6eb01192ae02294361faa6e1f320d72447b56f433db853bbe80b15ca","876fbedec2f494eb6f834ce8636b07d581c657d205d81a3ba894eff0facc6b84","58527aa45f11c9b259a6a9d78b397f35020bfbb104f4d3bb177039b5c18146bd","91b8b61d45b5d22f3458a4ac82e03b464a0926bab795a920fe0eca805ec476eb","2744532f8fb960eb78497ac660db719f503a10c801f87131d26fd9cbef75dcef","6884287c54891ac19cfbe056f3ed29cab1732a00dec69bd3b140ce62c11783c6","abc3487041159734b8611d9d6fd85de6892f11ebe8c2583baedfc1f87c53757c","cb46657d3237f80742d5701ebcced8f6e5cf8938442354387d6c77d7048dfae6","76281a3b799bbd17ec8e6de7d2fa45ccf749049fd53f00857daf0dbc449616b8","661f322e45545a554e4ffc38db6c4068a66e1323baf66acb0d8a9fa28195a669","91d70dce48c2a2bb55f0b851cf1bdba4202f107f1e8fdf45f94ff6be4b8e8f99","ce978e20a6f26f606b535f0d6deb384ae6a73f8d0bd0dfca0925f5317cad1f25","f2d3567210ca4d559d8297d6c4402599c93e3bc7485054192d38db5e132fbc0a","887d8058aeeade45984fdb8696147078bc630d3fea15ab2b7baacde0fe281fb7","ad27aa59d346179ac449bd3077d245f213152879e4027356306ccf1722d61d51","ea546a7ed9eaa71ba78d4d392509dadea4bafed283269dd6c4b09e7d8824e986","4ec0f2a141a9ae7d3557b8efe630ac2021bc3a9ac61238b59293f4cf2f196e82","b2db743c71652e03c52d51445af58d0af3316231faa92b66018b29c7ba975f6c","0863a5876c85fbaffbb8ec8aeda8b5042deb6932616139706d2b82cde9d3f7c7","1294b8ecdd212362323f349dd83b5c94ea77bfee4dad24fc290980a3c8af6ce3","ba9c46725e2a0bd9df59d3a1e801cc60f90db3ef7817131c53945dce2b8c0c56","281d373eeabf80c4851f8de991e6abe4d385c30379d80897bbc3df3dcac99cee","624c5dce95672d9dcca40d9d9d82ef855f5f902292f43aa265cc8fd963c6ce84","8a48d9c6184992d1c3ed5daa55f83d708c37582916926a5555a900608f804b60","605dd288c636cf9b5317fe76dec75d3c7fb855fdcd3ee8cb4fea7d7091ca6fb4","95addea67857d4e568a02e429b15458cec203876b2ea5f5ea18ccfeeb91b8ce0","b5a615b0ad865ffa562980a10bda162ac1744fd363b4edc2cfc664222071cbcf","bbccd721363897950a55ce09529503f25a69522e5c91a22679b66e941e5f8654","d3a1e70795c38d7851b6e4f3b441c5ffdae171d6e2576a2204b7d79059aeea66","d7b8d41887c5fccfe19802c4336d34348b752abf0d98839575699d71deff60be","063fe3004728b8516a4d799ee16f9a71801ba24e0443dd98638cef1bd4353a7c","b8a0236f47d9037efdaf93da602415ae425dababe097fc92f83fd47ce9aaa69f","fab7912fc3ff45fce2f5d5febc9494c4d0a85d6c63fff68f21e4669c32eaacb9","f6c3fcb9d75d8aea778236fd9327ceb935b41865dbf3beac698be77e0ae9018d","b20bc124abd8ee572d0d756713ff987b116cdae908a6fcbc40e80d4b999f56b4","a599f3f450ad62c3fdc0c3fd25cddcc9332ffb44327087947d48914a8da81364","645dff895168aa82350c9aa60aa0b3621b84289fef043be842f45a9c6c0ac6e2","f068ff5b7fb3bdc5380e0c677e21de829bd25cdac63a9b083fdc220fcb225280","09d2fdca6ea6c135897a26976ad3c0db724adaf23ef4e38ad852b1d8efef1ae6","15de5b7739bf7e40213a200853bf78455ee5958af08eda786605a54a7f25ade6","f3acb439e08f0c2c78c712a876dc6c2080302c46916f1d63b7dbe509616ce9ae","37862e711637ebd927907a82cbf0143ea30e95eb165df554926c43936b1d77a9","89e253db2c2cc9a510c521f14dd2b1aae4de2556ee5159ad8d118d3587e3a880","3d0a172cee184a0f4111a7bd7fbb8729af3f54b30c06a2677d85c20ea9c811ab","d6a07e5e8dee6dc63c7ecd9c21756babf097e1537fbc91ddfec17328a063f65d","6fdc88b1287c276b55b7f7c4c7b49587813c763eea9751ce0baf0a7e61cd5d89","6a02443704052768bd021f24783aa104b02ae4444e9b735317bf13c6b857a11e","37987b0fe9800cf25473c882ce07bccdab2763c5681c1a2d16816aead46aa8d1","c84c03c721154068e1a60d83e9e85819bd3ef70b824ac2edc498aa31c06e5781","c23a403716784b53cf6ce9ffff9dcdb959b7cacdf115294a3377d96b6df1e161","c96fb6a0c1e879f95634ab0ff439cbb6fff6227b26bbf0153bef9ed0aabba60d","db936079fe6396aad9bf7ad0479ffc9220cec808a26a745baebb5f9e2ef9dbc7","06bc0b9cc7bf0b92534f1517fe5adde1f23f60cc6cc5c59f8e1c65db48a40067","919a753b0cbb12ccc606c62e2d34884d75a48ba19b1dda497c72621b11dac088","2c27e33ee0bf722988da00abd582cc9b806ce3fd9153a864800a339ad13f3fcf","92d7b3a5aa5dc872e54cbad2a7094b3ea4f72c7901de1d07b4c334ff658297f0","7a52922b38e9686d5bdc6e75774929eec6688d26c1dfe4a03ddec77ede468e87","aa5efca2833d89b55248f1889a6433dab1b1f41768e9a75f8ce35f9bf56c5ec4","4911d4c3a7f7c11bad0e2cec329a19a385d10ea83b0b69c76e032359e388f624","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"4f6463a60e5754bbc4a864b2aaf8fecb7706b96a21b88f27b534589b801978b6","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"4ffef5c4698e94e49dcf150e3270bad2b24a2aeab48b24acbe7c1366edff377d","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","67a12e6c992d3f770078bacc562f767cf6142ae4453759a482f8f5ed30a99027","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","c993aac3b6d4a4620ef9651497069eb84806a131420e4f158ea9396fb8eb9b8c","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","06ccebc2c2db57d6bdbca63b71c4ae5e6ddc42d972fd8f122d4c1a28aa111b25",{"version":"81e8508d1e82278f5d3fee936f267e00c308af36219bfcee2631f9513c9c4017","affectsGlobalScope":true},"413a4be7f94f631235bbc83dad36c4d15e5a2ff02bca1efdbd03636d6454631b","20c468256fd68d3ef1fa53526e76d51d6aa91711e84d72c0343589b99238287e","4198acced75d48a039c078734c4efca7788ff8c78609c270a2b63ec20e3e1676","8d4c16a26d59e3ce49741a7d4a6e8206b884e226cf308667c7778a0b2c0fee7f","ee3bad055a79f188626b1a7046f04ab151fdd3581e55c51d32face175bd9d06f","d61c7c41eb1960b1285e242fd102c162b65c0522985b839fadda59874308a170",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"1805e0e4d1ed00f6361db25dff6887c7fa9b5b39f32599a34e8551da7daaa9c2","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","fb0989383c6109f20281b3d31265293daefdd76d0d30551782c1654e93704f48","a4210a84a82b3e7a8cec5b2f3616e46d523f4f10cc1576d8f2fb89d0987b341e",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","22d48bfb37261136423ac687f1fa7bd4dda3083f767416d409a8260cf92bc8fc","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","95518ff86843e226b62a800f679f6968ad8dac8ccbe30fbfe63de3afb13761a2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","698ab660b477b9c2cd5ccbd99e7e7df8b4a6134c1f5711fa615ed7aab51cb7f7","33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637","a4471d2bdba495b2a6a30b8765d5e0282fa7009d88345a9528f73c37869d3b93",{"version":"aee7013623e7632fba449d4df1da92925b27d9b816cb05546044dbfe54c88ef4","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","c9d70d3d7191a66a81cb554557f8ed1cf736ea8397c44a864fe52689de18865a","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"1aad825534c73852a1f3275e527d729a2c0640f539198fdfdfeb83b839851910","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"88003d9ab15507806f41b120be6d407c1afe566c2f6689ebe3a034dd5ec0c8dc","3da085d344bf625767c5b1fcada31a5d94ebefc4e36bf18a676ca37460bc4e4e","006855ddea8674d084173a768f88519dc154be94eba5e2120262a33709832b9b","17dd843a266f99ca4b3a1257538bd1cc69dc5c7f2f23c3891f0430615b8c9c1c","5430364886c721a30475253356162b6c27871718094cb3e69e2bcea71a17e533","1218398da7c8dc4add10bdb3aa2856aad54b123d847eaf574d1d694ac269bfb5","189014f3213ee7457dbeea04dca10ca5d9ed2062cd39641aca5f3b4c75de9d99","b637cd92688a6cdf4f8f184ff529dc2bc7f15692828e2c0c66a60e6972f400c7","7061e83d6792897077bcac039fccf7325234004769f591c63a8cf8478bf551bb","7ab905865063322f2bba361d0f2ef93520f64a382bac13b127479860ad99f62e","277a358d61376fce7ac3392402909c96cf6a0a613146549fc0165ccff953e012","50614c808e099a1d4413786f3783d9eeaaa74b267f2c87fcf8a893287e91c301","f4cb6530f248e87cefa74ef623206fec805f6252f885f8e14ef3d1a5872cef2d","38c332caadd8391566552395d592076470a5e7423f70964620eabf05c02907cd","eb17b5bf1fc763a644c21d76572c0e41e351c3f6dfcde649428d5d829f7294d2","cb124162c87b29ff5121e3ee5bb29c782f101e0135d6c2644ab1b31d530a435e","406d6f5d3707c488362fb40d1c1f8a7b0a42b70554b427160185d93e430228f5","2e9776410c5bc290d9432a9215c67398a273e514a79b9e15f32ecddfde8a03be","313ff8df074b81d3e4f088ff3a3a06df3d9b0d0c7f55469ccc2ac887ecb6b867","c718475bca06806cc243e77777641cb67ba68f2c57321a4773ebb47760a3bcf2","96e6bf811343caab5112b68880905c5d20d9257054afac6c18e718a4c549ed27","a2793bc73ba63ca7d259cb0f0b61d0023820170d08a1f9715006c8042d060165","d5011b38165771fdf75a9a06d6d379a1fc7edd7eb695ebdc52319fb6e3c6d81f","88417fb19d339304e9616a38ea513251047c9e300c81f9467fc317df8a582e71","3e8e2d132f726dddbda57819f5391504e585cb3beab6b32203064e7e40618583","6e23627cd3f10418b5b2db102fdcf557b75f2837f266d88afac6b18f333bb1bc","866046dcea88f23d766a65487ee7870c4cf8285a4c75407c80a5c26ed250ef8d","019f4f1cbc781cc15c6173f8be5ef907405722194ab297127b3c3426e5368339","41f4413eac08210dfc1b1cdb5891ad08b05c79f5038bdf8c06e4aedaa85b943d","c79f1c8b51d8475dde8d2973f740f43ca34b1f0a95d93649cd76c1ee20abba19","35f0d2bd2c5c05c0cb19095bf5b7c44365b1c88efe6285370855b90417277a64","8264b129f4c4eb4799703f8e5ee2223a184d1cdbfc782158b1f40a88a4435a1f","527ddda6f8be1279f3294714534c49d6e90f238cea325519882ebf88d7ec5bd2","b23877792e8bd00271d0ec5d401b68e4228540a4316de3d9dfb697b955c161a4","35b2eb1de01633db90d41abe93730b29984856fcc840b4c2801bfd3761a2097b","95f0c9127b879c2fc7e31f8e09ff45bb4aae302e60f4b9ceaf4d9ee6bc51ec66","2a6b4655a6edce9e07c7d826848f72533c9991d40bc36e3f85558ad20e87ce2d","6e3d29fdc96ebbb2ac672d2dae710c689c1ea0d0e9469e0847616f3c38fd085f","d505055b8fadd42da235c85947911d8d198ad70c5f5775991e7821d4f89c90f5","8b5a5852099dca7d7e7a7cef6d681dc1586aafacdb963ca180fe5cabbfa3a24b","0d1aa3341d1ad2064adada71c5d01a2f572e4aac09410e5616d90894105a0eb9","52494ca5a884da3bf11b8165ab31429715f0970d9c6383240c5666f4bd713e01","162fafa2291749df2ab4516854aa781fcee1d9fca2ecd85fb48ae794c0700ce2","b4b9b51ee6f6309cda2e539245235a8caeca2b1d6bf12b5e5c162d17333c450f","d2ffe8356f060b88c1c5cf1fa874a4b779fb87fd1977084876e8be9eab6bf485","c76053984b39150d00ade365b096a8bc21a4a7f2ee9e0a926711b00f8e7bf701","956b510767e3d6f362ea5800510635197723737af5d19ae07ee987ea4a90bfa5","cd1a8ff61f5063d7e6e2094e25d35c90b499961b63911f2f4ae0ff5555c2b4d7","1cf09b5945779e9bc75c4dcd805fb149c28fc90da3335186ef620647a3c540e1","9cdc0b9a313090ec45b34ea1eb02fbace433f509e753634b043e9b83038261e6","c93474cff0088351a65d3cad24037874a26a5371a48528563e56efe31cb3d8bb","b4580df8ea7f62d7b06588001952bf69426e6b03cf3d2569f5f608e45f29ba08","de27f7bb9be9d8a2b4557ec6503b8a315f74d598ce9a0ab81b5ed5610e1a8e81","fe3c378dcefa7ed8b21bd6822f5d7838b1119836da75ae1e1fb485d27b8ffb62","7365bf3333d4277b6fe374ed055624e5ec080dbb919e2d78f1cb75a3f1a4b4f6","a5fbf3bc5c16ab5c84465ba7a043a4bee4c2b20bd3633d50d80118a3844edbaf","0923e4ac8c894ad507bd2daee0df66b699de88467201381ece011ba5a080e1ff","e4f6626f827ea509255647e1b6db82145a2eb1a6b46202655e7d9bb19145c33b","26e23972c40f378f0301d8d7025ea895557c2865a1a31c8ea9c3fff0dbc27075","bfddbff94132b423ad1d71bdbefb1d388c21a74ac1a8742df9324e5bf6109058","795a08ae4e193f345073b49f68826ab6a9b280400b440906e4ec5c237ae777e6","8153df63cf65122809db17128e5918f59d6bb43a371b5218f4430c4585f64085","a8150bc382dd12ce58e00764d2366e1d59a590288ee3123af8a4a2cb4ef7f9df","5adfaf2f9f33957264ad199a186456a4676b2724ed700fc313ff945d03372169","d5c41a741cd408c34cb91f84468f70e9bda3dfeabf33251a61039b3cdb8b22d8","6e87c0c1cf06fe7dd6e545d72edefd61d86b4f13d2f9d34140e8168af94a7b7d","cbaf4a4aa8a8c02aa681c5870d5c69127974de29b7e01df570edec391a417959","b8d9df5c49858df86ffa6c497f1840528963c14ca0dea7684e813b008fe797b3","340a45cd77b41d8a6deda248167fa23d3dc67ec798d411bd282f7b3d555b1695","b1f8c85b27619ccfae9064e433b3b32a11d93d54de5a1afdaeca23c8b30e38a5","0ed6417b905cddb85f98281cb3b5b137d393955521993d9ce069d5e2d6b26ee8","f9ceab53f0d273ccaa68ef125974305dc26fe856af9a5be401ca72d0f78659d4","99d99a765426accf8133737843fb024a154dc6545fc0ffbba968a7c0b848959d","c782c5fd5fa5491c827ecade05c3af3351201dd1c7e77e06711c8029b7a9ee4d","883d2104e448bb351c49dd9689a7e8117b480b614b2622732655cef03021bf6d","8a10bdd9317aa91b37ee4b6dbd40529d0cd16353f04cf7c27b29c5604a28e8c3","09a7e04beb0547c43270b327c067c85a4e2154372417390731dfe092c4350998","eee530aaa93e9ec362e3941ee8355e2d073c7b21d88c2af4713e3d701dab8fef","ebf6ea6f412af15674333149f7f6561c0de9e36a4d4b350daccf6c5acbbf9fa3","1d6cc6dc76a777be3856c8892addb58d60b8957730951f9ab8b721e4f7fdf7e9","7a0e4cd92545ad03910fd019ae9838718643bd4dde39881c745f236914901dfa","c99ebd20316217e349004ee1a0bc74d32d041fb6864093f10f31984c737b8cad","6f622e7f054f5ab86258362ac0a64a2d6a27f1e88732d6f5f052f422e08a70e7","d62d2ef93ceeb41cf9dfab25989a1e5f9ca5160741aac7f1453c69a6c14c69be","1491e80d72873fc586605283f2d9056ee59b166333a769e64378240df130d1c9","c32c073d389cfaa3b3e562423e16c2e6d26b8edebbb7d73ccffff4aa66f2171d","eca72bf229eecadb63e758613c62fab13815879053539a22477d83a48a21cd73","633db46fd1765736409a4767bfc670861468dde60dbb9a501fba4c1b72f8644d","1f9cc8013b709369d82a9f19813cd09cd478481553a0e8262b3b7f28ab52b0b2","a314a39426700ba2b5a76c01bab321bbe79cfef898dae996e930b017fc2b0af9","7f2c10fc5de794bf7ddad2ff13b46e2b7f89ced296c1c372c5fdb94fc759d20d","6ea6e80bf94a93e4841d57878bba521822ca5e2ec7cbb626196a8efc2766eb79","8776e64e6165838ac152fa949456732755b0976d1867ae5534ce248f0ccd7f41","fdaf3475e11582e137bd84fa19f6bdbf23623f79cecc48a4037e8fa5756ba340","5c4c5b49bbb01828402bb04af1d71673b18852c11b7e95bfd5cf4c3d80d352c8","6b8861483f8d90261908256836f1b8951d1f4ac9a2a965e920fb18603c8d1d0a","72afd0094250e7f765576466170a299d0959a4799dbf28eb56ba70ca4772a8b4","44ec212fbf43580505de3d6054376ced252c534ced872c53698047387213efb9","4880c2a2caa941aff7f91f51948ebfb10f15283ff0b163f8ea2a74499add61aa","19c3760af3cbc9da99d5b7763b9e33aaf8d018bc2ed843287b7ff4343adf4634","9d1e38aeb76084848d2fcd39b458ec88246de028c0f3f448b304b15d764b23d2","b1048a866abac5d678376310d28fd258fd4d663942ac915a5fa90e585cf598f8","c9c6eed8faed23fc697b79d421ac443594a3458ae2a60150083ee1e860171971","9cc2a5c3e3c4be782a2300d356b94286764166acf2a6eedc83c6f7a53c0397f7","9ddf8e9069327faa75d20135cab675779844f66590249769c3d35dd2a38c2ba9","d7c30f0abfe9e197e376b016086cf66b2ffb84015139963f37301ed0da9d3d0d","ff75bba0148f07775bcb54bf4823421ed4ebdb751b3bf79cc003bd22e49d7d73","69196fa55fab9cd52c4eecba6051902bd5adff63ecf65e0546cb484b5a279fb1","35a9867207c488061fb4f6fe4715802fbc164b4400018d2fa0149ad02db9a61c","91bf47a209ad0eae090023c3ebc1165a491cf9758799368ffcbee8dbe7448f33","b75aa590b103f8491e1c943f9bc4989df55323d7e68fba393d3de11f4aae6bb8","4894a2c13e65af4fea49a2013e9123fe767a26ae51adb156e1a48dffba1e82f7","fc2a131847515b3dff2f0e835633d9a00a9d03ed59e690e27eec85b7b0522f92","90433c678bc26751eb7a5d54a2bb0a14be6f5717f69abb5f7a04afc75dce15a4","55ae9554811525f24818e19bdc8779fa99df434be7c03e5fc47fa441315f0226","7210df9e28cc71105d8938508a8bf99e7bf7df1f18548d774d7c2accbfb3332e","b842238362d1d1879242576ea63d436daa335613559ef0aff586825638d2d47a","e7bde95a05a0564ee1450bc9a53797b0ac7944bf24d87d6f645baca3aa60df48","62e68ce120914431a7d34232d3eca643a7ddd67584387936a5202ae1c4dd9a1b","e6b74c07c5a4e65b27f5a419467e021f61d45255d625bacffe502bd226ffc41d","e1cb8168c7e0bd4857a66558fe7fe6c66d08432a0a943c51bacdac83773d5745","70e929fee0f98d969cd4247583b4f70fe912787be58e21f6e9123b4afdaeb8f7","cd0eeda77ab149135d817ac1e1cd1e88f73bf37fe5a652b5c14e124e676201cf","cbc15ecf15b73c132087c185178ba51b7a786ff4a51b6f52a50b01aeb3d48353","8ca60a0840c741e66d4421defe62d44226167a4750fcfa080f760a8f9487fd1d","6d8dedbec739bc79642c1e96e9bfc0b83b25b104a0486aebf016fc7b85b39f48","cd0565ace87a2d7802bf4c20ea23a997c54e598b9eb89f9c75e69478c1f7a0b4","c18f4f72a68275b7602e5968b862cb9b7b76ea4a1ac1b3e622f99e0b672569e8","0fdb1ed509382bd388896d3770655b0cda8c80c36f8c54b3899992f7a3a8665c","d97b96b6ecd4ee03f9f1170722c825ef778430a6a0d7aab03b8929012bf773cd","f55fc3e536ab193aaabb9b6ded5f93181f81294ee65fe3199c9f4415f0f1e53c","ec8053ec564993a885ba2e2c31408369270a190a332a29fac7a825bb7e60b37c","542ecc66e4fcc33f46695ae22b1d14c075054a78c019915d556636be642465af","476b5c25e85b94e15d761bb9503f55fb11e81167df451f187f5080fca825273b","72636f59b635c378dc9ea5246b9b3517b1214e340e468e54cb80126353053b2e","ebb79f267a3bf2de5f8edc1995c5d31777b539935fab8b7d863e8efb06c8e9ea","ada033e6a4c7f4e147e6d76bb881069dc66750619f8cc2472d65beeec1100145","52ff5e1ea35c54428b46c75fd14f87b7a7158a8f4a1ecfc4a9b996a03185c738","605d29d619180fbec287d1701e8b1f51f2d16747ec308d20aba3e9a0dac43a0f","67c19848b442d77c767414084fc571ce118b08301c4ddff904889d318f3a3363","c704ff0e0cb86d1b791767a88af21dadfee259180720a14c12baee668d0eb8fb","195c50e15d5b3ea034e01fbdca6f8ad4b35ad47463805bb0360bdffd6fce3009","da665f00b6877ae4adb39cd548257f487a76e3d99e006a702a4f38b4b39431cb","0d276d377a0bf0f35e8d7a5b871922ebfa6aff1757d1bbe27a7982b15ce78516","9cbb45413acfdf0cc384d884de88c3f951319004450c88a2bcdad62a11bd21d9","d7a4309673b06223537bc9544b1a5fe9425628e1c8ab5605f3c5ebc27ecb8074","ced87f58b05e2b07e314754f0a7ab17e2df9c37ee2d429948024b2c6418d6c9f","3eadfd083d40777b403f4f4eecfa40f93876f2a01779157cc114b2565a7afb51","3ac0b94ba8f884f63d38450ce9e29ecd59ff00805ffdd609193d7532b8605459","a3684ea9719122f9477902acd08cd363a6f3cff6d493df89d4dc12fa58204e27","2828dabf17a6507d39ebcc58fef847e111dcf2d51b8e4ff0d32732c72be032b3","c0c46113b4cd5ec9e7cf56e6dbfb3930ef6cbba914c0883eeced396988ae8320","118ea3f4e7b9c12e92551be0766706f57a411b4f18a1b4762cfde3cd6d4f0a96","473bf3574a48185f71b70fe839fb1a340a176d80ea7f50dee489c2dc8e81613f","2b14b50de7e32a9882511d1b06be4eb036303bc72ce4a10f93a224382731500d","eeb24fa259f000f6b51a1fe89123f55de081eb2a0ef8d8f847afd67af49cfb68","91d8f3c1c3ae5efb8564ec7cb1f8ac8bf5714eb94078fb50a761ab811963e324","e21bb2cfbcdd8ce7eebb72422f3660806724f2b16cd6ce126d527511abb3a379","c04146836a55ea071b435298335e47f569db0e4d3ae420e35c83e448f944192f","31f71fe23daabea143fc8bd21dae0d5908227180fcda38ad3674df70351f9761","517168a194de5ffaf307e9f8d9eea05952997e795c2f21f8fbc37c64bc8c3872","6305acbe492b9882ec940f8f0c8e5d1e1395258852f99328efcb1cf1683ca817","7619b1f6087a4e9336b2c42bd784b05aa4a2204a364b60171e5a628f817a381e","15be9120572c9fbcd3c267bd93b4140354514c9e70734e6fcca65ff4a246f83a","412482ab85893cec1d6f26231359474d1f59f6339e2743c08da1b05fc1d12767","858e2315e58af0d28fcd7f141a2505aba6a76fd10378ba0ad169b0336fee33fc","02da6c1b34f4ae2120d70cf5f9268bf1aedf62e55529d34f5974f5a93655ce38","3ecf179ef1cc28f7f9b46c8d2e496d50b542c176e94ed0147bab147b4a961cd6","b145da03ce7e174af5ced2cbbd16e96d3d5c2212f9a90d3657b63a5650a73b7f","c7aadab66a2bc90eeb0ab145ca4daebcbc038e24359263de3b40e7b1c7affba6","99518dc06286877a7b716e0f22c1a72d3c62be42701324b49f27bcc03573efff","f4575fd196a7e33c7be9773a71bcc5fbe7182a2152be909f6b8e8e7ba2438f06","05cba5acd77a4384389b9c62739104b5a1693efd66e6abac6c5ffc53280ae777","acacda82ebd929fe2fe9e31a37f193fc8498a7393a1c31dc5ceb656e2b45b708","1b13e7c5c58ab894fe65b099b6d19bb8afae6d04252db1bf55fe6ba95a0af954","4355d326c3129e5853b56267903f294ad03e34cc28b75f96b80734882dedac80","37139a8d45342c05b6a5aa1698a2e8e882d6dca5fb9a77aa91f05ac04e92e70b","e37191297f1234d3ae54edbf174489f9a3091a05fe959724db36f8e58d21fb17","3fca8fb3aab1bc7abb9b1420f517e9012fdddcbe18803bea2dd48fad6c45e92e","d0b0779e0cac4809a9a3c764ba3bd68314de758765a8e3b9291fe1671bfeb8a1","d2116b5f989aa68e585ae261b9d6d836be6ed1be0b55b47336d9f3db34674e86","d79a227dd654be16d8006eac8b67212679d1df494dfe6da22ea0bd34a13e010c","b9c89b4a2435c171e0a9a56668f510a376cb7991eaecef08b619e6d484841735","b85baa660305c65d45f97f5b227b1505a8023955f1bf27da178232e7be99cc12","d5dd266b6f5c9c24f6b4001e172615626a51e350b3267b4af3970e4fb2c57fab","89049878a456b5e0870bb50289ea8ece28a2abd0255301a261fa8ab6a3e9a07d","a464510505f31a356e9833963d89ce39f37a098715fc2863e533255af4410525","ebbe6765a836bfa7f03181bc433c8984ca29626270ca1e240c009851222cb8a7","ac10457b51ee4a3173b7165c87c795eadd094e024f1d9f0b6f0c131126e3d903","b2f2311d7085a1feec3f6a85d7cc8bdaf1d976de1874c1f92940ad8ce6a34d39","954523d1f4856180cbf79b35bd754e14d3b2aea06c7efd71b254c745976086e9","4ee1e0fea72cd6a832c65af93b62fbf39b009e3711384bb371b48c9abba66781","d35fb65da678a4971822249d657f564ff6bdb6618428642235c4858ebafb2379","b27a613e49e00740db23e2e267b8e44e51ee85a448e787b7fa7c7a7be7316104","4d54136f3080a92f0b031115719321fa25bd855582c30f7f6b6e78969ffe7ec5","6c7554f14f08d3264e220f6ac82cf00e3b6a3bd15ec676bd97bf0e06da79e18d","a2506732a96c864f9336a4fc0403f7f4f3831cfe1db4a40ddf95866dbe2d28ef","8aa451aa2c6e762f359e6fae74e2903f6e3304b1a5ae19c1da548128ddf25add","2e756f5c2e33e9b28aebe174d147a19b46f2364027050acb8c8c2f83e005b2ec","434ea45c930ac3accf5951ac80af2da02a3e0945d33f1e59dbd3a50498cb519b","dc5f64a739746e51c220dceef9b4de820a1daa2dea3254d63bba9988ddcb500b","ab555ebf13e4f021233b5dbd6876eb2a4514aa651693ba9fa38d1e7e7df3b841","6b3233127e08357fda5142130d43a222ed0dac32861ac6c72f8288c0c79cf749","0d4dab75055c9279cb1dcb693cf8568bd724e4f653fd95a3a82ad2e267c4dda6","e4b29bf9f77857ac881ae8eb16d685ecc53e0a996f20d4ff762a6f2974474d90","df6c83e574308f6540c19e3409370482a7d8f448d56c65790b4ac0ab6f6fedd8","32f19b665839b1382b21afc41917cda47a56e744cd3df9986b13a72746d1c522","405fa7000efd4f0317eb31fa76ed40bad16be48ef2efc88b53bbe439fae74aaa","3e5a089877b3647b42c6f8d8284ff26e57fd3d94f1b1736080079796b994a89e","fde8122ba963e8f7ef9da2a35029632dc8637e9740c9d8cc9745d94ca42e6762","5a44788293f9165116c9c183be66cefef0dc5d718782a04847de53bf664f3cc1","afd653ae63ce07075b018ba5ce8f4e977b6055c81cc65998410b904b94003c0a","e113cc2ab6f65586cbba1618aab57af8f1e1fbe0ab9c3d339f1b348f6fe8f63c","9f96b9fd0362a7bfe6a3aa70baa883c47ae167469c904782c99ccc942f62f0dc","5df9a68835c1e020625127d8c951c90808d319c811fc3a780d24f64053192ea4","71807b208e5f15feffb3ff530bec5b46b1217af0d8cc96dde00d549353bcb864","67f7637f370ee8c18fe060c901e071db2c4368de90a5c58cf1f959d12b0c2f7e","7b9bb27ccb36dfa59f0007824ac9219db846eeb5478f13badce2f6b3b8913dfc","02fccda6ddf0edd94eba71e2f07d4b7fcc7797f3dd5812871f2bf86e4de83cd6","e9cba458ea179833bba7b180c10e7293b4986d2f66a7bd99c13f243d91bab3d4","8b0b6a4c032a56d5651f7dd02ba3f05fbfe4131c4095093633cda3cae0991972","27484cb3aa328bc5d0957fcb34df68a5db1be280af510d9ed3a282b1a0a93b38","6c2b8c78eb1476ad2668898923fda9c3e67b295b9a6dc7a7312ead2582a76883","d8fb0821bcebbcc5ef87655a6442e8909313eb0bd7960f696b10cdb31576fdaa","1053398d8fd9b1a45170b5cca30bd54abe7ec7061ef2929c4da9feaa71737930","83f7f1890b6a202865b1014b5e72b2115f522773304d61569396be144bbee2fc","8949f85fb38104d50011076ac359186889d6e18e230b0cf8256230e802e8c4ed","fe4613c6c0d23edc04cd8585bdd86bc7337dc6265fb52037d11ca19eeb5e5aaf","667f0c535a93ce1f70d528b57a5c4bf2af8f60559795f39399c8958ede1b66a7","0f02f73e940e993a73103717e21e1d74166b83093bcb299d5e2b5c8bdc684c9b","31a335eb49c1ea1b0d8ded51d2dee99d96b45e67f581638b2bce9cd121a2dcdc","c86ad86cc7a3ec3794deab9b943a823d9aaf09b846bb581a06bf263117e8d6d9","cfe88132f67aa055a3f49d59b01585fa8d890f5a66a0a13bb71973d57573eee7","f23601713615719b1a1394deae884fb9f507de819a086d5a019c63793da9efc6","50fd11b764194f06977c162c37e5a70bcf0d3579bf82dd4de4eee3ac68d0f82f","ad5ad568f2f537a43dcc1588b2379f9dc79539ae36b8821b13a5d03625211eb2","99579aa074ed298e7a3d6a47e68f0cd099e92411212d5081ce88344a5b1b528d","d2d58166965f631fa203f405f3713b0f86f1f8b80755e9daea43057a25311e16","ce7dbf31739cc7bca35ca50e4f0cbd75cd31fd6c05c66841f8748e225dc73aaf","942ab34f62ac3f3d20014615b6442b6dc51815e30a878ebc390dd70e0dec63bf","a861cceeb708d23beebcf7f3235dcdd1a5a7d1655afd6ba49dbc0d45f5370469","0256d60785ede7860b5262f504f139aa68f74db44ba9f03807b752864580772c","396c1e5a39706999ec8cc582916e05fcb4f901631d2c192c1292e95089a494d9","89df75d28f34fc698fe261f9489125b4e5828fbd62d863bbe93373d3ed995056","7cb9b6d5c1e3508fbc81e7bbab314eac54715f9326ac72fd0eb65f17a4393d50","eefa4f00b4a4c150786e5ed866999b44687388e94a99f0b67a78b59c5b2303fd","be75c12a8d61aaadb9e33e0d7d0e7b2f3bee9a3ac618d04367e0b7c2aea3f86d","e6223b7263dd7a49f4691bf8df2b1e69f764fb46972937e6f9b28538d050b1ba","bf6599adc97713bc0eefb924accc7cb92c4415718650166fcf6157a1ef024f01","1db014db736a09668e0c0576585174dbcfd6471bb5e2d79f151a241e0d18d66b","98fca44eb9a677e5bd6eafaa95eeefbe719c3d520edc819c5d8186dcd7971163","56a2cc03b33542972ed37df7153319540238d34a3a688a004cffcb90c84b3138","82d3e00d56a71fc169f3cf9ec5f5ffcc92f6c0e67d4dfc130dafe9f1886d5515","9a388a54fbab04eef88430f5775cc48c1069d14e852d6fdb10cc966a9c3cd8e8","7007c800fbb767a1137e011d7d8fe0847cbd1a9e99bbe3528db955e32a32d6c1","e3d221660c0b79a9a3ba1111b3dfbb1136c0b52d7609b0054d3ce09ce711a3e6","892adfd3427fa4ed24bede88e8e46e4cb67e53e794365023fd473f3be796981d","b4f1cc43cdf2f75f62ea43ab32ac29e26649920906712d9605cef4849f48065b","9fac6ebf3c60ced53dd21def30a679ec225fc3ff4b8d66b86326c285a4eebb5a","992fda06eebba15d37625007500bef5b3fdd1c5e2f5a334064efeb1604c7bce3","07bc8a3551e39e70c38e7293b1a09916867d728043e352b119f951742cb91624","e47adc2176f43c617c0ab47f2d9b2bb1706d9e0669bf349a30c3fe09ddd63261","7fec79dfd7319fec7456b1b53134edb54c411ba493a0aef350eee75a4f223eeb","189c489705bb96a308dcde9b3336011d08bfbca568bcaf5d5d55c05468e9de7a","98f4b1074567341764b580bf14c5aabe82a4390d11553780814f7e932970a6f7","abdc0a8843b28c3cafbefb90079690b17b7b4e2a9c9bbf2cd8762e11a3958034","2e252235037a2cd8feebfbf74aa460f783e5d423895d13f29a934d7655a1f8be","f3e04e6c6db44b9ad05a0b7c89e914b08eee05f2050968b761ed98735d42cd62","cde7a556921e117aecafdca19a3574a92f38212e316925b87ad6f853ac81831e","b2f7fe7faccd7324583435ad92f8cb26a4ccc85de336839cf78afd6006f1d4bc","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","7463cb4f8b66b66d5468fc84f5446f48b8402cdeec6bfce1f0b2ab383992d3b5","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","331dd4fb49f27df3e88bcd1361a063de1e9bcc7d463d6dc386b0c0d690c1a66f","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"a1c79f857f5c7754e14c93949dad8cfefcd7df2ecc0dc9dd79a30fd493e28449","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","3adc8ac088388fd10b0e9cd3fa08abbebed9172577807394a241466ccb98f411","e050a0afcdbb269720a900c85076d18e0c1ab73e580202a2bf6964978181222a","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","3054ef91b855e005b9c4681399e9d64d2a7b07a22d539314d794f09e53b876a7","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true},"2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","93c4fc5b5237c09bc9ed65cb8f0dc1d89034406ab40500b89701341994897142","2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","6aee496bf0ecfbf6731aa8cca32f4b6e92cdc0a444911a7d88410408a45ecc5d","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","31c502014e5ba046d5cb060136929b73fd53f0f989aa37b2b0424644cb0d93ef","76232dbb982272b182a76ad8745a9b02724dc9896e2328ce360e2c56c64c9778","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","28288f5e5f8b7b895ed2abe6359c1da3e0d14a64b5aef985071285671f347c01"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"experimentalDecorators":true,"module":1,"noFallthroughCasesInSwitch":false,"noImplicitAny":false,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"strictBindCallApply":false,"strictNullChecks":false,"target":4},"fileIdsList":[[228,504],[228],[228,531],[228,355,357],[228,348,357,358],[228,387],[228,298,387],[228,388,389],[48,228,359,390,392,393],[228,294,348],[228,391],[228,348,355,356],[228,356,357],[228,348],[228,310,335],[228,451],[228,360,361,362,363,364,365,366,367,368,369,370,371,372,373],[228,303,335],[228,310],[228,300,348,451],[228,378,379,380,381,382,383,384,385],[228,305],[228,348,451],[228,374,377,386],[228,375,376],[228,339],[228,305,306,307,308],[228,395],[228,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416],[228,419],[216,228,235,418],[47,228,309,348,355,387,394,417,420,441,446,448,450],[52,228],[52,228,294],[228,303,422],[228,297,424],[228,294,298],[52,228,348],[228,302,303],[228,315],[228,317,318,319,320,321],[228,309,310,323,327],[228,328,329,330],[228,235],[49,50,51,52,53,228,295,296,297,298,299,300,301,302,303,304,310,315,316,322,327,331,332,333,335,343,344,345,346,347],[228,326],[228,311,312,313,314],[228,303,311,312],[228,303,309,310],[228,303,313],[228,303,339],[228,334,336,337,338,339,340,341,342],[49,228,303],[228,335],[49,228,303,334,338,340],[228,312],[228,336],[228,303,335,336,337],[228,325],[228,303,307,325,343],[228,323,324,326],[228,299,301,310,316,323,328,344,345,348],[53,228,299,301,304,344,345],[228,308],[228,294],[228,325,348,349,353],[228,353,354],[228,348,349],[228,348,349,350],[228,350,351],[228,350,351,352],[228,304],[228,434],[228,434,435,436,437,438,439],[228,426,434],[228,434,435,436,437,438],[228,304,434,437],[228,421,427,428,429,430,431,432,433,440],[228,304,348,427],[228,304,426],[228,304,426,451],[228,297,303,304,422,423,424,425,426],[228,294,348,422,423,442],[228,348,422],[228,444],[228,387,442],[228,442,443,445],[228,325,447],[228,334],[228,309,348],[228,449],[228,323,327,348,451],[228,454],[228,348,451,465,466],[228,458,464,465],[228,469,470],[228,451,455,472],[228,473],[228,465],[228,472,475],[47,228,455,467,468,471,474,476,479,484,487,488,489,491,493,499,501],[228,348,451,460,461,464,465],[228,348,456],[228,303,332,451,456,457,458,464,465,467,502],[228,458,459,463,465,478,483],[228,348,451,464,465],[228,477],[228,459,464,465],[228,451,459,460,464],[228,348,451,464],[228,451,457,458,463,480,481,482],[228,348,451,459,460,461,462,464,465],[228,303,451],[228,348,459,463,465],[228,464],[228,332],[228,315,348,485],[228,486],[228,348,459],[228,323,348,451,455,459,467,488],[228,326,327,451,454,490],[228,492],[215,228,235,451],[228,495,497,498],[228,494],[228,496],[228,451,458,464,495],[51,228,303,332,348,451,459,464,467,479],[228,500],[228,504,505,506,507,508],[228,504,506],[202,228,235,510],[202,228,235],[228,514,516],[228,513,514,515],[199,202,228,235,518,519],[228,511,519,520,523],[200,228,235],[228,526],[228,527],[228,533,536],[228,522],[228,521],[184,228],[187,228],[188,193,219,228],[189,199,200,207,216,227,228],[189,190,199,207,228],[191,228],[192,193,200,208,228],[193,216,224,228],[194,196,199,207,228],[195,228],[196,197,228],[198,199,228],[199,228],[199,200,201,216,227,228],[199,200,201,216,228],[202,207,216,227,228],[199,200,202,203,207,216,224,227,228],[202,204,216,224,227,228],[184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234],[199,205,228],[206,227,228],[196,199,207,216,228],[208,228],[209,228],[187,210,228],[211,226,228,232],[212,228],[213,228],[199,214,228],[214,215,228,230],[188,199,216,217,218,228],[188,216,218,228],[216,217,228],[219,228],[220,228],[199,222,223,228],[222,223,228],[193,207,224,228],[225,228],[207,226,228],[188,202,213,227,228],[193,228],[216,228,229],[228,230],[228,231],[188,193,199,201,210,216,227,228,230,232],[216,228,233],[228,540,579],[228,540,564,579],[228,579],[228,540],[228,540,565,579],[228,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578],[228,565,579],[202,228,235,522],[188,200,202,216,228,235,512],[228,582],[228,584],[228,529,535],[228,533],[228,530,534],[228,532],[54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,111,112,113,114,115,116,117,118,119,121,123,124,125,126,127,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,177,228,238,240,241,242,243,244,245,247,248,250,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293],[99,228],[57,58,228],[54,55,56,58,228],[55,58,228],[58,99,228],[54,58,176,228],[56,57,58,228],[54,58,228],[58,228],[57,228],[54,57,99,228],[55,57,58,228,267],[57,58,228,267],[57,228,275],[55,57,58,228],[67,228],[90,228],[111,228],[57,58,99,228],[58,106,228],[57,58,99,117,228],[57,58,117,228],[58,158,228],[54,58,177,228],[183,228,237],[54,58,176,183,228,236],[176,177,228,237],[183,228],[54,58,183,228,236,237],[228,251],[228,246],[228,249],[55,57,177,178,179,180,228],[99,177,178,179,180,228],[177,179,228],[57,178,179,181,182,228,238],[54,57,228],[58,228,253],[59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,100,101,102,103,104,105,107,108,109,110,111,112,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,228],[228,239],[228,451,452],[228,453,502]],"referencedMap":[[506,1],[504,2],[529,2],[532,3],[48,2],[358,4],[359,5],[388,6],[389,7],[390,8],[394,9],[391,10],[392,11],[356,2],[357,12],[393,13],[372,2],[360,2],[361,14],[362,15],[363,2],[364,16],[374,17],[365,2],[366,18],[367,2],[368,2],[369,14],[370,14],[371,14],[373,19],[381,20],[383,2],[380,2],[386,21],[384,2],[382,2],[378,22],[379,23],[385,2],[387,24],[375,2],[377,25],[376,26],[306,2],[309,27],[305,2],[307,2],[308,2],[411,28],[396,28],[403,28],[400,28],[413,28],[404,28],[410,28],[395,2],[414,28],[417,29],[408,28],[398,28],[416,28],[401,28],[399,28],[409,28],[405,28],[415,28],[402,28],[412,28],[397,28],[407,28],[406,28],[420,30],[419,31],[418,2],[451,32],[49,2],[50,2],[51,2],[53,33],[295,34],[296,33],[422,2],[323,2],[324,2],[423,35],[297,2],[424,2],[425,36],[52,2],[299,37],[300,2],[298,38],[301,37],[302,2],[304,39],[316,40],[317,2],[322,41],[318,2],[319,2],[320,2],[321,2],[328,42],[331,43],[329,2],[330,44],[348,45],[332,2],[333,2],[490,46],[315,47],[313,48],[311,49],[312,50],[314,2],[340,51],[334,2],[343,52],[336,53],[341,54],[339,55],[342,56],[337,57],[338,58],[326,59],[344,60],[327,61],[346,62],[347,63],[335,2],[303,2],[310,64],[345,65],[354,66],[349,2],[355,67],[350,68],[351,69],[352,70],[353,71],[421,72],[435,73],[434,2],[440,74],[436,73],[437,75],[439,76],[438,77],[441,78],[428,79],[429,80],[432,81],[431,81],[430,80],[433,80],[427,82],[443,83],[442,84],[445,85],[444,86],[446,87],[447,59],[448,88],[325,2],[449,89],[426,90],[450,91],[454,92],[455,93],[467,94],[468,2],[469,2],[470,95],[471,96],[473,97],[474,98],[475,99],[472,93],[476,100],[502,101],[462,102],[457,103],[459,104],[484,105],[460,106],[478,107],[477,2],[461,108],[481,109],[465,110],[482,2],[483,111],[463,112],[456,113],[464,114],[458,115],[479,116],[486,117],[487,118],[485,119],[488,112],[489,120],[491,121],[493,122],[492,123],[499,124],[466,16],[495,125],[494,16],[497,126],[496,2],[498,127],[480,128],[501,129],[500,16],[531,2],[509,130],[505,1],[507,131],[508,1],[511,132],[510,133],[512,2],[517,134],[513,2],[516,135],[514,2],[520,136],[524,137],[525,138],[526,2],[527,139],[528,140],[537,141],[515,2],[521,142],[522,143],[184,144],[185,144],[187,145],[188,146],[189,147],[190,148],[191,149],[192,150],[193,151],[194,152],[195,153],[196,154],[197,154],[198,155],[199,156],[200,157],[201,158],[186,2],[234,2],[202,159],[203,160],[204,161],[235,162],[205,163],[206,164],[207,165],[208,166],[209,167],[210,168],[211,169],[212,170],[213,171],[214,172],[215,173],[216,174],[218,175],[217,176],[219,177],[220,178],[221,2],[222,179],[223,180],[224,181],[225,182],[226,183],[227,184],[228,185],[229,186],[230,187],[231,188],[232,189],[233,190],[538,2],[539,2],[519,2],[518,2],[564,191],[565,192],[540,193],[543,193],[562,191],[563,191],[553,191],[552,194],[550,191],[545,191],[558,191],[556,191],[560,191],[544,191],[557,191],[561,191],[546,191],[547,191],[559,191],[541,191],[548,191],[549,191],[551,191],[555,191],[566,195],[554,191],[542,191],[579,196],[578,2],[573,195],[575,197],[574,195],[567,195],[568,195],[570,195],[572,195],[576,197],[577,197],[569,197],[571,197],[523,198],[580,2],[582,199],[583,200],[584,2],[585,201],[581,2],[536,202],[534,203],[535,204],[530,2],[533,205],[47,2],[294,206],[267,2],[245,207],[243,207],[106,208],[57,209],[56,210],[244,211],[177,212],[99,213],[55,214],[54,215],[293,210],[258,216],[257,216],[117,217],[265,208],[266,208],[268,218],[269,208],[270,215],[271,208],[242,208],[272,208],[273,219],[274,208],[275,216],[276,220],[277,208],[278,208],[279,208],[280,208],[281,216],[282,208],[283,208],[284,208],[285,208],[286,221],[287,208],[288,208],[289,208],[290,208],[291,208],[59,215],[60,215],[61,208],[62,215],[63,215],[64,215],[65,215],[66,208],[68,222],[69,215],[67,215],[70,215],[71,215],[72,215],[73,215],[74,215],[75,215],[76,208],[77,215],[78,215],[79,215],[80,215],[81,215],[82,208],[83,215],[84,208],[85,215],[86,215],[87,215],[88,215],[89,208],[91,223],[90,215],[92,215],[93,215],[94,215],[95,215],[96,221],[97,208],[98,208],[112,224],[100,225],[101,215],[102,215],[103,208],[104,215],[105,215],[107,226],[108,215],[109,215],[110,215],[111,215],[113,215],[114,215],[115,215],[116,215],[118,227],[119,215],[120,215],[121,215],[122,208],[123,215],[124,228],[125,228],[126,228],[127,208],[128,215],[129,215],[130,215],[135,215],[131,215],[132,208],[133,215],[134,208],[136,208],[137,215],[138,215],[139,208],[140,208],[141,215],[142,208],[143,215],[144,215],[145,208],[146,215],[147,215],[148,215],[149,215],[150,215],[151,215],[152,215],[153,215],[154,215],[155,215],[156,215],[157,215],[158,215],[159,229],[160,215],[161,215],[162,215],[163,215],[164,215],[165,215],[166,208],[167,208],[168,208],[169,208],[170,208],[171,215],[172,215],[173,215],[174,215],[292,208],[176,230],[251,231],[246,231],[237,232],[183,233],[249,234],[238,235],[252,236],[247,237],[248,234],[250,238],[236,44],[241,2],[181,239],[182,240],[179,2],[180,241],[178,215],[239,242],[58,243],[259,2],[260,2],[261,2],[262,2],[263,2],[264,2],[253,2],[256,216],[255,2],[254,244],[175,245],[240,246],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[46,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[452,16],[453,247],[503,248]],"exportedModulesMap":[[506,1],[504,2],[529,2],[532,3],[48,2],[358,4],[359,5],[388,6],[389,7],[390,8],[394,9],[391,10],[392,11],[356,2],[357,12],[393,13],[372,2],[360,2],[361,14],[362,15],[363,2],[364,16],[374,17],[365,2],[366,18],[367,2],[368,2],[369,14],[370,14],[371,14],[373,19],[381,20],[383,2],[380,2],[386,21],[384,2],[382,2],[378,22],[379,23],[385,2],[387,24],[375,2],[377,25],[376,26],[306,2],[309,27],[305,2],[307,2],[308,2],[411,28],[396,28],[403,28],[400,28],[413,28],[404,28],[410,28],[395,2],[414,28],[417,29],[408,28],[398,28],[416,28],[401,28],[399,28],[409,28],[405,28],[415,28],[402,28],[412,28],[397,28],[407,28],[406,28],[420,30],[419,31],[418,2],[451,32],[49,2],[50,2],[51,2],[53,33],[295,34],[296,33],[422,2],[323,2],[324,2],[423,35],[297,2],[424,2],[425,36],[52,2],[299,37],[300,2],[298,38],[301,37],[302,2],[304,39],[316,40],[317,2],[322,41],[318,2],[319,2],[320,2],[321,2],[328,42],[331,43],[329,2],[330,44],[348,45],[332,2],[333,2],[490,46],[315,47],[313,48],[311,49],[312,50],[314,2],[340,51],[334,2],[343,52],[336,53],[341,54],[339,55],[342,56],[337,57],[338,58],[326,59],[344,60],[327,61],[346,62],[347,63],[335,2],[303,2],[310,64],[345,65],[354,66],[349,2],[355,67],[350,68],[351,69],[352,70],[353,71],[421,72],[435,73],[434,2],[440,74],[436,73],[437,75],[439,76],[438,77],[441,78],[428,79],[429,80],[432,81],[431,81],[430,80],[433,80],[427,82],[443,83],[442,84],[445,85],[444,86],[446,87],[447,59],[448,88],[325,2],[449,89],[426,90],[450,91],[454,92],[455,93],[467,94],[468,2],[469,2],[470,95],[471,96],[473,97],[474,98],[475,99],[472,93],[476,100],[502,101],[462,102],[457,103],[459,104],[484,105],[460,106],[478,107],[477,2],[461,108],[481,109],[465,110],[482,2],[483,111],[463,112],[456,113],[464,114],[458,115],[479,116],[486,117],[487,118],[485,119],[488,112],[489,120],[491,121],[493,122],[492,123],[499,124],[466,16],[495,125],[494,16],[497,126],[496,2],[498,127],[480,128],[501,129],[500,16],[531,2],[509,130],[505,1],[507,131],[508,1],[511,132],[510,133],[512,2],[517,134],[513,2],[516,135],[514,2],[520,136],[524,137],[525,138],[526,2],[527,139],[528,140],[537,141],[515,2],[521,142],[522,143],[184,144],[185,144],[187,145],[188,146],[189,147],[190,148],[191,149],[192,150],[193,151],[194,152],[195,153],[196,154],[197,154],[198,155],[199,156],[200,157],[201,158],[186,2],[234,2],[202,159],[203,160],[204,161],[235,162],[205,163],[206,164],[207,165],[208,166],[209,167],[210,168],[211,169],[212,170],[213,171],[214,172],[215,173],[216,174],[218,175],[217,176],[219,177],[220,178],[221,2],[222,179],[223,180],[224,181],[225,182],[226,183],[227,184],[228,185],[229,186],[230,187],[231,188],[232,189],[233,190],[538,2],[539,2],[519,2],[518,2],[564,191],[565,192],[540,193],[543,193],[562,191],[563,191],[553,191],[552,194],[550,191],[545,191],[558,191],[556,191],[560,191],[544,191],[557,191],[561,191],[546,191],[547,191],[559,191],[541,191],[548,191],[549,191],[551,191],[555,191],[566,195],[554,191],[542,191],[579,196],[578,2],[573,195],[575,197],[574,195],[567,195],[568,195],[570,195],[572,195],[576,197],[577,197],[569,197],[571,197],[523,198],[580,2],[582,199],[583,200],[584,2],[585,201],[581,2],[536,202],[534,203],[535,204],[530,2],[533,205],[47,2],[294,206],[267,2],[245,207],[243,207],[106,208],[57,209],[56,210],[244,211],[177,212],[99,213],[55,214],[54,215],[293,210],[258,216],[257,216],[117,217],[265,208],[266,208],[268,218],[269,208],[270,215],[271,208],[242,208],[272,208],[273,219],[274,208],[275,216],[276,220],[277,208],[278,208],[279,208],[280,208],[281,216],[282,208],[283,208],[284,208],[285,208],[286,221],[287,208],[288,208],[289,208],[290,208],[291,208],[59,215],[60,215],[61,208],[62,215],[63,215],[64,215],[65,215],[66,208],[68,222],[69,215],[67,215],[70,215],[71,215],[72,215],[73,215],[74,215],[75,215],[76,208],[77,215],[78,215],[79,215],[80,215],[81,215],[82,208],[83,215],[84,208],[85,215],[86,215],[87,215],[88,215],[89,208],[91,223],[90,215],[92,215],[93,215],[94,215],[95,215],[96,221],[97,208],[98,208],[112,224],[100,225],[101,215],[102,215],[103,208],[104,215],[105,215],[107,226],[108,215],[109,215],[110,215],[111,215],[113,215],[114,215],[115,215],[116,215],[118,227],[119,215],[120,215],[121,215],[122,208],[123,215],[124,228],[125,228],[126,228],[127,208],[128,215],[129,215],[130,215],[135,215],[131,215],[132,208],[133,215],[134,208],[136,208],[137,215],[138,215],[139,208],[140,208],[141,215],[142,208],[143,215],[144,215],[145,208],[146,215],[147,215],[148,215],[149,215],[150,215],[151,215],[152,215],[153,215],[154,215],[155,215],[156,215],[157,215],[158,215],[159,229],[160,215],[161,215],[162,215],[163,215],[164,215],[165,215],[166,208],[167,208],[168,208],[169,208],[170,208],[171,215],[172,215],[173,215],[174,215],[292,208],[176,230],[251,231],[246,231],[237,232],[183,233],[249,234],[238,235],[252,236],[247,237],[248,234],[250,238],[236,44],[241,2],[181,239],[182,240],[179,2],[180,241],[178,215],[239,242],[58,243],[259,2],[260,2],[261,2],[262,2],[263,2],[264,2],[253,2],[256,216],[255,2],[254,244],[175,245],[240,246],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[46,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[452,16],[453,247],[503,248]],"semanticDiagnosticsPerFile":[506,504,529,532,48,358,359,388,389,390,394,391,392,356,357,393,372,360,361,362,363,364,374,365,366,367,368,369,370,371,373,381,383,380,386,384,382,378,379,385,387,375,377,376,306,309,305,307,308,411,396,403,400,413,404,410,395,414,417,408,398,416,401,399,409,405,415,402,412,397,407,406,420,419,418,451,49,50,51,53,295,296,422,323,324,423,297,424,425,52,299,300,298,301,302,304,316,317,322,318,319,320,321,328,331,329,330,348,332,333,490,315,313,311,312,314,340,334,343,336,341,339,342,337,338,326,344,327,346,347,335,303,310,345,354,349,355,350,351,352,353,421,435,434,440,436,437,439,438,441,428,429,432,431,430,433,427,443,442,445,444,446,447,448,325,449,426,450,454,455,467,468,469,470,471,473,474,475,472,476,502,462,457,459,484,460,478,477,461,481,465,482,483,463,456,464,458,479,486,487,485,488,489,491,493,492,499,466,495,494,497,496,498,480,501,500,531,509,505,507,508,511,510,512,517,513,516,514,520,524,525,526,527,528,537,515,521,522,184,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,186,234,202,203,204,235,205,206,207,208,209,210,211,212,213,214,215,216,218,217,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,538,539,519,518,564,565,540,543,562,563,553,552,550,545,558,556,560,544,557,561,546,547,559,541,548,549,551,555,566,554,542,579,578,573,575,574,567,568,570,572,576,577,569,571,523,580,582,583,584,585,581,536,534,535,530,533,47,294,267,245,243,106,57,56,244,177,99,55,54,293,258,257,117,265,266,268,269,270,271,242,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,59,60,61,62,63,64,65,66,68,69,67,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,90,92,93,94,95,96,97,98,112,100,101,102,103,104,105,107,108,109,110,111,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,130,135,131,132,133,134,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,292,176,251,246,237,183,249,238,252,247,248,250,236,241,181,182,179,180,178,239,58,259,260,261,262,263,264,253,256,255,254,175,240,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,46,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,1,45,11,10,452,453,503]},"version":"4.9.3"} \ No newline at end of file diff --git a/tests_hugo/chat_nest_2/nest-cli.json b/tests_hugo/chat_nest_2/nest-cli.json new file mode 100644 index 00000000..25664811 --- /dev/null +++ b/tests_hugo/chat_nest_2/nest-cli.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://json.schemastore.org/nest-cli", + "collection": "@nestjs/schematics", + "sourceRoot": "src" +} diff --git a/tests_hugo/chat_nest_2/package-lock.json b/tests_hugo/chat_nest_2/package-lock.json new file mode 100644 index 00000000..14e937bb --- /dev/null +++ b/tests_hugo/chat_nest_2/package-lock.json @@ -0,0 +1,14605 @@ +{ + "name": "chat_nest_2", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "chat_nest_2", + "version": "0.0.1", + "license": "UNLICENSED", + "dependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/platform-express": "^9.0.0", + "reflect-metadata": "^0.1.13", + "rimraf": "^3.0.2", + "rxjs": "^7.2.0" + }, + "devDependencies": { + "@nestjs/cli": "^9.0.0", + "@nestjs/schematics": "^9.0.0", + "@nestjs/testing": "^9.0.0", + "@types/express": "^4.17.13", + "@types/jest": "28.1.8", + "@types/node": "^16.0.0", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^8.0.1", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "28.1.3", + "prettier": "^2.3.2", + "source-map-support": "^0.5.20", + "supertest": "^6.1.3", + "ts-jest": "28.0.8", + "ts-loader": "^9.2.3", + "ts-node": "^10.0.0", + "tsconfig-paths": "4.1.0", + "typescript": "^4.7.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.2.tgz", + "integrity": "sha512-ofDhTmJqoAkmkJP0duwUaCxDBMxPlc+AWYwgs3rKKZeJBb0d+tchEXHXevD5bYbbRfXtnwM+Vye2XYHhA4nWAA==", + "dev": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/schematics": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.2.tgz", + "integrity": "sha512-90hseNg1yQ2AR+lVr/NByZRHnYAlzCL6hr9p9q1KPHxA3Owo04yX6n6dvR/xf27hCopXInXKPsasR59XCx5ZOQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.2", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-14.2.2.tgz", + "integrity": "sha512-timCty5tO1A5VOcy8nVJ+jL98i6+ct5/Hg+4rQxc3J6agmmNL9fALboJBEz1ckTt7MewlGtrpohMMy+YGhuWOg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "ansi-colors": "4.1.3", + "inquirer": "8.2.4", + "symbol-observable": "4.0.0", + "yargs-parser": "21.1.1" + }, + "bin": { + "schematics": "bin/schematics.js" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/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/@angular-devkit/schematics-cli/node_modules/inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/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/@babel/generator": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/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/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "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/@eslint/eslintrc/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/@eslint/eslintrc/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/@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "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/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/console/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/@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/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/@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "dependencies": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/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/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform/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/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/types/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/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nestjs/cli": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-9.1.5.tgz", + "integrity": "sha512-rSp26+Nv7PFtYrRSP18Gv5ZK8rRSc2SCCF5wh4SdZaVGgkxShpNq9YEfI+ik/uziN3KC5o74ppYRXGj+aHGVsA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "@angular-devkit/schematics-cli": "14.2.2", + "@nestjs/schematics": "^9.0.0", + "chalk": "3.0.0", + "chokidar": "3.5.3", + "cli-table3": "0.6.2", + "commander": "4.1.1", + "fork-ts-checker-webpack-plugin": "7.2.13", + "inquirer": "7.3.3", + "node-emoji": "1.11.0", + "ora": "5.4.1", + "os-name": "4.0.1", + "rimraf": "3.0.2", + "shelljs": "0.8.5", + "source-map-support": "0.5.21", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.1.0", + "tsconfig-paths-webpack-plugin": "4.0.0", + "typescript": "4.8.4", + "webpack": "5.74.0", + "webpack-node-externals": "3.0.0" + }, + "bin": { + "nest": "bin/nest.js" + }, + "engines": { + "node": ">= 12.9.0" + } + }, + "node_modules/@nestjs/cli/node_modules/typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@nestjs/cli/node_modules/webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/@nestjs/common": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-9.2.0.tgz", + "integrity": "sha512-Ndcqak/ETYi+n1c5lFRPbxKLyUuM6DIOxcvfEFGfi0f6ad4dWDXRDx7z/n8V0l8+Y8djvvOHgf3t0e93w963Qg==", + "dependencies": { + "iterare": "1.2.1", + "tslib": "2.4.1", + "uuid": "9.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "cache-manager": "<=5", + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "cache-manager": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/core": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-9.2.0.tgz", + "integrity": "sha512-eVN7aXAavV+ImVt8mO+rQ5YyUP6lJtQKUtQHxHKzz6Wg+9Y67WWZS2uDcDX5NNcNijbWky5bqad86fgcK9Oqig==", + "hasInstallScript": true, + "dependencies": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "object-hash": "3.0.0", + "path-to-regexp": "3.2.0", + "tslib": "2.4.1", + "uuid": "9.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/microservices": "^9.0.0", + "@nestjs/platform-express": "^9.0.0", + "@nestjs/websockets": "^9.0.0", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } + } + }, + "node_modules/@nestjs/platform-express": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-9.2.0.tgz", + "integrity": "sha512-J1+nnzjC9ATSb0jSHBqAE6D4o+PIbGPItEfYTOZ0rkE5bvqnRfgO4q94SXhfri+5PaNx2vM8tOZsKaD0QmQRGQ==", + "dependencies": { + "body-parser": "1.20.1", + "cors": "2.8.5", + "express": "4.18.2", + "multer": "1.4.4-lts.1", + "tslib": "2.4.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0" + } + }, + "node_modules/@nestjs/schematics": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.0.3.tgz", + "integrity": "sha512-kZrU/lrpVd2cnK8I3ibDb3Wi1ppl3wX3U3lVWoL+DzRRoezWKkh8upEL4q0koKmuXnsmLiu3UPxFeMOrJV7TSA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", + "fs-extra": "10.1.0", + "jsonc-parser": "3.2.0", + "pluralize": "8.0.0" + }, + "peerDependencies": { + "typescript": "^4.3.5" + } + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "dev": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core/node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", + "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.1", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics/node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "node_modules/@nestjs/schematics/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/@nestjs/schematics/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@nestjs/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@nestjs/testing": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-9.2.0.tgz", + "integrity": "sha512-Lj6UXmBJKcXB16bZzu0IG7GpH7hl5Cn71OcPSrVVuPrFd5kDYqFbodfE9OkAKaHjEhOvZ2ynoo/i6cyfX4yOvQ==", + "dev": true, + "dependencies": { + "tslib": "2.4.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/microservices": "^9.0.0", + "@nestjs/platform-express": "^9.0.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": 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/@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "28.1.8", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz", + "integrity": "sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==", + "dev": true, + "dependencies": { + "expect": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/superagent": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.15.tgz", + "integrity": "sha512-mu/N4uvfDN2zVQQ5AYJI/g4qxn2bHB6521t1UuH09ShNWjebTqN0ZFuYK9uYjcgmI0dTQEs+Owi1EO6U0OkOZQ==", + "dev": true, + "dependencies": { + "@types/cookiejar": "*", + "@types/node": "*" + } + }, + "node_modules/@types/supertest": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.12.tgz", + "integrity": "sha512-X3HPWTwXRerBZS7Mo1k6vMVR1Z6zmJcDVn5O/31whe0tnjE4te6ZJSJGq1RiqHPjzPdMTfjCFogDJmwng9xHaQ==", + "dev": true, + "dependencies": { + "@types/superagent": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.43.0.tgz", + "integrity": "sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/type-utils": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.43.0.tgz", + "integrity": "sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz", + "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.43.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "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/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "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-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "dependencies": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/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/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "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==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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==", + "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/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001434", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001434.tgz", + "integrity": "sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", + "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "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==", + "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==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "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==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cookiejar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "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/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "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/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "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/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "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.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.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/eslint/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/eslint/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/eslint/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/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/eslint/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/eslint/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/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "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/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "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/esquery/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/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/esrecurse/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/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "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/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "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-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/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "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/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "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/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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/fork-ts-checker-webpack-plugin": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.13.tgz", + "integrity": "sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "vue-template-compiler": "*", + "webpack": "^5.11.0" + }, + "peerDependenciesMeta": { + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", + "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "dev": true, + "dependencies": { + "dezalgo": "1.0.3", + "hexoid": "1.0.0", + "once": "1.4.0", + "qs": "6.9.3" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/formidable/node_modules/qs": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", + "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "dev": true, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "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==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "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-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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": "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/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "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/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "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==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/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/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "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==", + "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==" + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/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/inquirer/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/inquirer/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "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/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/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/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/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/jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/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/jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-diff/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/jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/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/jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils/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/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/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/jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve/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/jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner/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/jest-runner/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runtime/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/jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/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/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-util/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/jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/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/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watcher/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/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "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/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "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": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "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==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "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/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/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/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/macos-release": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", + "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/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/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "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/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "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/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=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==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "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/multer": { + "version": "1.4.4-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "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/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-abort-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz", + "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==", + "dev": true + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/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/os-name": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", + "dev": true, + "dependencies": { + "macos-release": "^2.5.0", + "windows-release": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.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/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "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-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==" + }, + "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/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "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/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "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/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "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/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "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/rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/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/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/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/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/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/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "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/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/superagent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.3.tgz", + "integrity": "sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/supertest": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.1.tgz", + "integrity": "sha512-hRohNeIfk/cA48Cxpa/w48hktP6ZaRqXb0QV5rLvW0C7paRsBU3Q5zydzYrslOJtj/gd48qx540jKtcs6vG1fQ==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.0.3" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.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/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "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/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-jest": { + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^28.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^28.0.0", + "babel-jest": "^28.0.0", + "jest": "^28.0.0", + "typescript": ">=4.3" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-loader": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.1.tgz", + "integrity": "sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/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/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz", + "integrity": "sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow==", + "dev": true, + "dependencies": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tsconfig-paths-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tsconfig-paths-webpack-plugin/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/tsconfig-paths/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/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "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-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "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/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/webpack": { + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.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/windows-release": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", + "dev": true, + "dependencies": { + "execa": "^4.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/windows-release/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "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/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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==" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@angular-devkit/core": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.2.tgz", + "integrity": "sha512-ofDhTmJqoAkmkJP0duwUaCxDBMxPlc+AWYwgs3rKKZeJBb0d+tchEXHXevD5bYbbRfXtnwM+Vye2XYHhA4nWAA==", + "dev": true, + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.2.tgz", + "integrity": "sha512-90hseNg1yQ2AR+lVr/NByZRHnYAlzCL6hr9p9q1KPHxA3Owo04yX6n6dvR/xf27hCopXInXKPsasR59XCx5ZOQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.2", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/schematics-cli": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-14.2.2.tgz", + "integrity": "sha512-timCty5tO1A5VOcy8nVJ+jL98i6+ct5/Hg+4rQxc3J6agmmNL9fALboJBEz1ckTt7MewlGtrpohMMy+YGhuWOg==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "ansi-colors": "4.1.3", + "inquirer": "8.2.4", + "symbol-observable": "4.0.0", + "yargs-parser": "21.1.1" + }, + "dependencies": { + "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" + } + }, + "inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } + } + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "dev": true + }, + "@babel/core": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "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" + }, + "dependencies": { + "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" + } + }, + "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 + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@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 + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + } + }, + "@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "requires": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + } + }, + "@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2" + } + }, + "@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + } + }, + "@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "requires": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nestjs/cli": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-9.1.5.tgz", + "integrity": "sha512-rSp26+Nv7PFtYrRSP18Gv5ZK8rRSc2SCCF5wh4SdZaVGgkxShpNq9YEfI+ik/uziN3KC5o74ppYRXGj+aHGVsA==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "@angular-devkit/schematics-cli": "14.2.2", + "@nestjs/schematics": "^9.0.0", + "chalk": "3.0.0", + "chokidar": "3.5.3", + "cli-table3": "0.6.2", + "commander": "4.1.1", + "fork-ts-checker-webpack-plugin": "7.2.13", + "inquirer": "7.3.3", + "node-emoji": "1.11.0", + "ora": "5.4.1", + "os-name": "4.0.1", + "rimraf": "3.0.2", + "shelljs": "0.8.5", + "source-map-support": "0.5.21", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.1.0", + "tsconfig-paths-webpack-plugin": "4.0.0", + "typescript": "4.8.4", + "webpack": "5.74.0", + "webpack-node-externals": "3.0.0" + }, + "dependencies": { + "typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true + }, + "webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + } + } + } + }, + "@nestjs/common": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-9.2.0.tgz", + "integrity": "sha512-Ndcqak/ETYi+n1c5lFRPbxKLyUuM6DIOxcvfEFGfi0f6ad4dWDXRDx7z/n8V0l8+Y8djvvOHgf3t0e93w963Qg==", + "requires": { + "iterare": "1.2.1", + "tslib": "2.4.1", + "uuid": "9.0.0" + } + }, + "@nestjs/core": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-9.2.0.tgz", + "integrity": "sha512-eVN7aXAavV+ImVt8mO+rQ5YyUP6lJtQKUtQHxHKzz6Wg+9Y67WWZS2uDcDX5NNcNijbWky5bqad86fgcK9Oqig==", + "requires": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "object-hash": "3.0.0", + "path-to-regexp": "3.2.0", + "tslib": "2.4.1", + "uuid": "9.0.0" + } + }, + "@nestjs/platform-express": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-9.2.0.tgz", + "integrity": "sha512-J1+nnzjC9ATSb0jSHBqAE6D4o+PIbGPItEfYTOZ0rkE5bvqnRfgO4q94SXhfri+5PaNx2vM8tOZsKaD0QmQRGQ==", + "requires": { + "body-parser": "1.20.1", + "cors": "2.8.5", + "express": "4.18.2", + "multer": "1.4.4-lts.1", + "tslib": "2.4.1" + } + }, + "@nestjs/schematics": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.0.3.tgz", + "integrity": "sha512-kZrU/lrpVd2cnK8I3ibDb3Wi1ppl3wX3U3lVWoL+DzRRoezWKkh8upEL4q0koKmuXnsmLiu3UPxFeMOrJV7TSA==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", + "fs-extra": "10.1.0", + "jsonc-parser": "3.2.0", + "pluralize": "8.0.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "dev": true, + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "dependencies": { + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", + "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.1", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "dependencies": { + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + } + } + }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@nestjs/testing": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-9.2.0.tgz", + "integrity": "sha512-Lj6UXmBJKcXB16bZzu0IG7GpH7hl5Cn71OcPSrVVuPrFd5kDYqFbodfE9OkAKaHjEhOvZ2ynoo/i6cyfX4yOvQ==", + "dev": true, + "requires": { + "tslib": "2.4.1" + } + }, + "@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" + } + }, + "@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "requires": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==", + "dev": true + }, + "@types/eslint": { + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "28.1.8", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz", + "integrity": "sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==", + "dev": true, + "requires": { + "expect": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "@types/node": { + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/superagent": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.15.tgz", + "integrity": "sha512-mu/N4uvfDN2zVQQ5AYJI/g4qxn2bHB6521t1UuH09ShNWjebTqN0ZFuYK9uYjcgmI0dTQEs+Owi1EO6U0OkOZQ==", + "dev": true, + "requires": { + "@types/cookiejar": "*", + "@types/node": "*" + } + }, + "@types/supertest": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.12.tgz", + "integrity": "sha512-X3HPWTwXRerBZS7Mo1k6vMVR1Z6zmJcDVn5O/31whe0tnjE4te6ZJSJGq1RiqHPjzPdMTfjCFogDJmwng9xHaQ==", + "dev": true, + "requires": { + "@types/superagent": "*" + } + }, + "@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.43.0.tgz", + "integrity": "sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/type-utils": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.43.0.tgz", + "integrity": "sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz", + "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.43.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, + "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": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + } + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "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==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "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-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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 + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "requires": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^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==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "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" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001434", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001434.tgz", + "integrity": "sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA==", + "dev": true + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "ci-info": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", + "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true + }, + "cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "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==", + "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==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "cookiejar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "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" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "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 + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true + }, + "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" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "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.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "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" + } + }, + "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 + } + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "requires": {} + }, + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "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" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "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" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "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 + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "requires": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "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" + } + }, + "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 + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "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" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + } + } + }, + "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" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "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 + }, + "fork-ts-checker-webpack-plugin": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.13.tgz", + "integrity": "sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "dependencies": { + "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" + } + } + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", + "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "dev": true, + "requires": { + "dezalgo": "1.0.3", + "hexoid": "1.0.0", + "once": "1.4.0", + "qs": "6.9.3" + }, + "dependencies": { + "qs": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", + "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "dev": true + } + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "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==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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": "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" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "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" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "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==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "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" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.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==", + "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==" + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "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" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "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-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==" + }, + "jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "requires": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + } + }, + "jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + } + }, + "jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "requires": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + } + }, + "jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true + }, + "jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "requires": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + } + }, + "jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "dependencies": { + "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" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "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" + } + } + } + }, + "jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "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" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "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": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "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" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "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==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "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 + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + }, + "macos-release": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", + "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "dev": true + }, + "magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memfs": { + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", + "dev": true, + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "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" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "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 + }, + "multer": { + "version": "1.4.4-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-abort-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz", + "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==", + "dev": true + }, + "node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "requires": { + "lodash": "^4.17.21" + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.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==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "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" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "os-name": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", + "dev": true, + "requires": { + "macos-release": "^2.5.0", + "windows-release": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "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" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "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" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "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==" + }, + "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-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==" + }, + "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 + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "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 + }, + "prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "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 + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "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 + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "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-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "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 + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "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==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "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" + } + }, + "rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "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" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "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 + } + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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 + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "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 + }, + "superagent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.3.tgz", + "integrity": "sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA==", + "dev": true, + "requires": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "dependencies": { + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + } + } + }, + "supertest": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.1.tgz", + "integrity": "sha512-hRohNeIfk/cA48Cxpa/w48hktP6ZaRqXb0QV5rLvW0C7paRsBU3Q5zydzYrslOJtj/gd48qx540jKtcs6vG1fQ==", + "dev": true, + "requires": { + "methods": "^1.1.2", + "superagent": "^8.0.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.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 + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "dependencies": { + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "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 + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "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" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "ts-jest": { + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^28.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + } + }, + "ts-loader": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.1.tgz", + "integrity": "sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "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" + } + } + } + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz", + "integrity": "sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow==", + "dev": true, + "requires": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "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 + } + } + }, + "tsconfig-paths-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "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-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "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 + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "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" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "webpack": { + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "dev": true, + "peer": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + } + }, + "webpack-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "dev": true + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.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" + } + }, + "windows-release": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", + "dev": true, + "requires": { + "execa": "^4.0.2" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + } + } + }, + "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 + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "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 + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "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/tests_hugo/chat_nest_2/package.json b/tests_hugo/chat_nest_2/package.json new file mode 100644 index 00000000..ed393ee9 --- /dev/null +++ b/tests_hugo/chat_nest_2/package.json @@ -0,0 +1,71 @@ +{ + "name": "chat_nest_2", + "version": "0.0.1", + "description": "", + "author": "", + "private": true, + "license": "UNLICENSED", + "scripts": { + "prebuild": "rimraf dist", + "build": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "start": "nest start", + "start:dev": "nest start --watch", + "start:debug": "nest start --debug --watch", + "start:prod": "node dist/main", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:e2e": "jest --config ./test/jest-e2e.json" + }, + "dependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/platform-express": "^9.0.0", + "reflect-metadata": "^0.1.13", + "rimraf": "^3.0.2", + "rxjs": "^7.2.0" + }, + "devDependencies": { + "@nestjs/cli": "^9.0.0", + "@nestjs/schematics": "^9.0.0", + "@nestjs/testing": "^9.0.0", + "@types/express": "^4.17.13", + "@types/jest": "28.1.8", + "@types/node": "^16.0.0", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^8.0.1", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "28.1.3", + "prettier": "^2.3.2", + "source-map-support": "^0.5.20", + "supertest": "^6.1.3", + "ts-jest": "28.0.8", + "ts-loader": "^9.2.3", + "ts-node": "^10.0.0", + "tsconfig-paths": "4.1.0", + "typescript": "^4.7.4" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + }, + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "testEnvironment": "node" + } +} diff --git a/tests_hugo/chat_nest_2/src/app.controller.ts b/tests_hugo/chat_nest_2/src/app.controller.ts new file mode 100644 index 00000000..b18f3fed --- /dev/null +++ b/tests_hugo/chat_nest_2/src/app.controller.ts @@ -0,0 +1,8 @@ +import { Controller, Get } from '@nestjs/common'; + +@Controller() +export class AppController { + + @Get() + getHello() {} +} diff --git a/tests_hugo/chat_nest_2/src/app.module.ts b/tests_hugo/chat_nest_2/src/app.module.ts new file mode 100644 index 00000000..98b6ba83 --- /dev/null +++ b/tests_hugo/chat_nest_2/src/app.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { AppController } from './app.controller'; + +@Module({ + imports: [], + controllers: [AppController], + providers: [], +}) +export class AppModule {} diff --git a/tests_hugo/chat_nest_2/src/main.ts b/tests_hugo/chat_nest_2/src/main.ts new file mode 100644 index 00000000..741130fe --- /dev/null +++ b/tests_hugo/chat_nest_2/src/main.ts @@ -0,0 +1,11 @@ +import { NestFactory } from '@nestjs/core'; +import { AppModule } from './app.module'; + +async function bootstrap() { + const app = await NestFactory.create(AppModule); + app.enableCors(options:{ + origin: ['http://localhost:3000'] + }); + await app.listen(8000); +} +bootstrap(); diff --git a/tests_hugo/chat_nest_2/test/app.e2e-spec.ts b/tests_hugo/chat_nest_2/test/app.e2e-spec.ts new file mode 100644 index 00000000..50cda623 --- /dev/null +++ b/tests_hugo/chat_nest_2/test/app.e2e-spec.ts @@ -0,0 +1,24 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppModule } from './../src/app.module'; + +describe('AppController (e2e)', () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + it('/ (GET)', () => { + return request(app.getHttpServer()) + .get('/') + .expect(200) + .expect('Hello World!'); + }); +}); diff --git a/tests_hugo/chat_nest_2/test/jest-e2e.json b/tests_hugo/chat_nest_2/test/jest-e2e.json new file mode 100644 index 00000000..e9d912f3 --- /dev/null +++ b/tests_hugo/chat_nest_2/test/jest-e2e.json @@ -0,0 +1,9 @@ +{ + "moduleFileExtensions": ["js", "json", "ts"], + "rootDir": ".", + "testEnvironment": "node", + "testRegex": ".e2e-spec.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } +} diff --git a/tests_hugo/chat_nest_2/tsconfig.build.json b/tests_hugo/chat_nest_2/tsconfig.build.json new file mode 100644 index 00000000..64f86c6b --- /dev/null +++ b/tests_hugo/chat_nest_2/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] +} diff --git a/tests_hugo/chat_nest_2/tsconfig.json b/tests_hugo/chat_nest_2/tsconfig.json new file mode 100644 index 00000000..adb614ca --- /dev/null +++ b/tests_hugo/chat_nest_2/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "es2017", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./", + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": false, + "noImplicitAny": false, + "strictBindCallApply": false, + "forceConsistentCasingInFileNames": false, + "noFallthroughCasesInSwitch": false + } +} diff --git a/tests_hugo/chat_node/README.md b/tests_hugo/chat_node/README.md new file mode 100644 index 00000000..5f59b451 --- /dev/null +++ b/tests_hugo/chat_node/README.md @@ -0,0 +1,54 @@ + +- [socket io multi room chat](http://psitsmike.com/2011/10/node-js-and-socket-io-multiroom-chat-tutorial/) + +first time : + npm install --save express socket.io cors + sudo npm install -g nodemon + +next time : + npm install + +anytime : + nodemon server + +- [ ] don't send message to oneself +- [ ] create a room +- [ ] automatically add someone to a room +- [ ] being able to accept or refuse to be added to a room +- [ ] what to do with message not received ? + +``` +-> create_public_conv( room_name ); +-> create_private_conv( room_name ); +-> create_protected_conv( room_name ); +-> create_direct_conv( room_name ); + +-> change_conv( room_name ); + +-> get_conv_history( room_name ); +-> get_last_conv(); + +-> get_my_convs_directs( ); +-> get_my_convs_rooms( ); +-> get_public_convs( ); + +[ list ][ create ][ join ] + "directs" . [direct] (public and protected) + "rooms" . [room] + . public + . private + . protected + +on connection : + get_convs_directs(); + get_convs_rooms(); + last_conv = get_last_conv(); + if (last_conv) + get_conv_history(last_conv); + + +``` +## todo: +- check if drop down menu works also with buttons instead of
+- add window for option when select 'room' + diff --git a/tests_hugo/chat_node/chat_client/_test_layouts.js b/tests_hugo/chat_node/chat_client/_test_layouts.js new file mode 100644 index 00000000..743bb720 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/_test_layouts.js @@ -0,0 +1,32 @@ +/* +*/ +let test = document.createElement('form'); +test.innerHTML = ` + +

+

+

+

+

+

+

+

+

+

+

+

+

+

+`; + +document.body.prepend(test); + +function chat_layout_toggle(layout_class) { + document.getElementById('chat_box').classList.toggle(layout_class); +}; +function chat_layout_replace(_old, _new) { + let chat = document.getElementById('chat_box'); + chat.classList.remove(_old); + chat.classList.add(_new); +}; + diff --git a/tests_hugo/chat_node/chat_client/chat.html b/tests_hugo/chat_node/chat_client/chat.html new file mode 100644 index 00000000..de03bc6e --- /dev/null +++ b/tests_hugo/chat_node/chat_client/chat.html @@ -0,0 +1,444 @@ + + + + + + + + + + + +
+ + + + + + + +

create

+

<user_name>

+ +
+ + + + + + +
+ + + + + +
+

list of your rooms :

+
+
+

/ you have no chat room yet /

+
+ + + + + +
+
+ + +
+ +

join room :

+
+
+

/ there are no public rooms yet /

+
+ + + + + + +
+
+ + +
+

blocked users :

+
+ + + + + + +
+
+ + +
+ +

room users :

+
+
+

/ there are no public rooms yet /

+
+ + + + + + +
+
+ + +
+

this room is protected

+
+ + + +
+
+ + +
+
+ + + + + + + + + + + + + +
+ + +

confirm password :

+ +
+ +
+
+ + +
+

user options :

+
+ + + +
+ + +
+
+
+ + +
+

mute this user for a time :

+
+ + + +
+ + + + + + +
+ +
+
+ + +
+
+ +
+

bob

+

hello

+
+
+

me

+

hello

+
+ +
+
+ + +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + diff --git a/tests_hugo/chat_node/chat_client/chat2.html b/tests_hugo/chat_node/chat_client/chat2.html new file mode 100644 index 00000000..e7d7c46c --- /dev/null +++ b/tests_hugo/chat_node/chat_client/chat2.html @@ -0,0 +1,59 @@ + + + + + + + + + + +
+ +
+ + + + diff --git a/tests_hugo/chat_node/chat_client/chat_add_msg.js b/tests_hugo/chat_node/chat_client/chat_add_msg.js new file mode 100644 index 00000000..cc35d085 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/chat_add_msg.js @@ -0,0 +1,32 @@ + +const add_message = (from, message ) => { + const div_thread = document.getElementById('chat_api_msg_thread'); + + div_thread.appendChild(build_new_message(from, message)); +} + +const build_new_message = (from, message) => { + const div = document.createElement("div"); + const p_name = document.createElement("p"); + const p_msg = document.createElement("p"); + + div.classList.add("chat_msg"); + div.classList.add(from); + p_name.classList.add("name"); + p_msg.classList.add("msg"); + + p_name.appendChild(document.createTextNode(from + " :")); + p_msg.appendChild(document.createTextNode(message)); + div.appendChild(p_name); + div.appendChild(p_msg); + + return div; +} + +/* +
+

bob

+

hello

+
+*/ + diff --git a/tests_hugo/chat_node/chat_client/chat_add_room.js b/tests_hugo/chat_node/chat_client/chat_add_room.js new file mode 100644 index 00000000..fd63d128 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/chat_add_room.js @@ -0,0 +1,3 @@ +//const add_room = (rooms, newroom) => { +// +//}; diff --git a/tests_hugo/chat_node/chat_client/chat_connection.js b/tests_hugo/chat_node/chat_client/chat_connection.js new file mode 100644 index 00000000..c94e8d7c --- /dev/null +++ b/tests_hugo/chat_node/chat_client/chat_connection.js @@ -0,0 +1,5 @@ +socket.on('connect', () => { + //socket.emit('adduser', prompt("what's your name ?")); + socket.emit('adduser', "glurk"); + //socket.emit('joinlastroom'); +}); diff --git a/tests_hugo/chat_node/chat_client/chat_create_room.js b/tests_hugo/chat_node/chat_client/chat_create_room.js new file mode 100644 index 00000000..eabce045 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/chat_create_room.js @@ -0,0 +1,5 @@ +let create_room = () => { + let room_name = prompt("room name ?"); + + socket.emit('createroom', room_name); +}; diff --git a/tests_hugo/chat_node/chat_client/chat_send_msg.js b/tests_hugo/chat_node/chat_client/chat_send_msg.js new file mode 100644 index 00000000..14c0c892 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/chat_send_msg.js @@ -0,0 +1,32 @@ +function send_msg() +{ + const div_msg = document.getElementById('chat_msg_write'); + let msg = ""; + if (div_msg.localName === "div") + { + msg = div_msg.innerText.trim(); + div_msg.innerText = ""; + } + else if (div_msg.localName === "textarea") + { + msg = div_msg.value.trim(); + div_msg.value = ""; + } + div_msg.focus(); + + console.log(msg); + + if (msg.length > 0) { + socket.emit('sendmsg', msg); + add_message("me", msg); + } +} + +function send_msg_if(evt) +{ + if (evt.shiftKey && evt.key === "Enter") + { + evt.preventDefault(); + send_msg(); + } +} diff --git a/tests_hugo/chat_node/chat_client/event_updatemsg.js b/tests_hugo/chat_node/chat_client/event_updatemsg.js new file mode 100644 index 00000000..0c5a2b07 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/event_updatemsg.js @@ -0,0 +1,5 @@ +socket.on('updatemsg', (from, data) => { + console.log("data: " + data); + add_message(from, data); +}); + diff --git a/tests_hugo/chat_node/chat_client/event_updaterooms.js b/tests_hugo/chat_node/chat_client/event_updaterooms.js new file mode 100644 index 00000000..f6499266 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/event_updaterooms.js @@ -0,0 +1,30 @@ +socket.on('updaterooms', (rooms) => { + let div_rooms = document.getElementById("rooms"); + + console.log("rooms: "); + console.log(rooms); + +// let div_room_count = div_rooms.childElementCount; +// let div_room_list = document.getElementsByClassName("room_name"); +// console.log(".div_room_list: "); +// console.log(div_room_list); +// for(let room of div_room_list) { +// console.log(room); +// console.log(room.innerHTML); +// } + + div_rooms.innerHTML = ""; + for (let room of rooms) { + //console.log(room.name); + const label = document.createElement("label"); + const p = document.createElement("p"); + const p_content = document.createTextNode(room.name); + label.setAttribute('for', "input_outside"); + p.className = "room_name"; + p.appendChild(p_content); + label.appendChild(p); + div_rooms.appendChild(label); + } + +}); + diff --git a/tests_hugo/chat_node/chat_client/style/chat.css b/tests_hugo/chat_node/chat_client/style/chat.css new file mode 100644 index 00000000..7b5abf72 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/chat.css @@ -0,0 +1,82 @@ + +/* +*/ + +@import 'chat__global.css'; + +@import 'layout_close.css'; +@import 'layout_home.css'; +@import 'layout_room.css'; +@import 'layout_new.css'; +@import 'layout_settings.css'; +@import 'layout_room_set.css'; +@import 'layout_protected.css'; +@import 'layout_create.css'; +@import 'layout_user.css'; +@import 'layout_mute.css'; + +@import 'chat_panels.css'; +@import 'chat_buttons.css'; +@import 'chat_back.css'; +@import 'chat_close.css'; +@import 'chat_write.css'; +@import 'chat_msg.css'; +@import 'chat_blocked.css'; +@import 'chat_form.css'; + + +/* + GRID + */ + +#chat_box * { + display: flex; + flex-direction: column; + position: relative; + box-sizing: border-box; + padding: 0px; + margin: auto; +} +#chat_box .chat_item { + display: none; + /* + border: 1px solid black; + */ + width: 100%; + height: 100%; +} + +.chat_item#chat_chat { grid-area: chat;} +.chat_item#chat_close { grid-area: close;} +.chat_item#chat_new { grid-area: new;} +.chat_item#chat_settings { grid-area: settings;} +.chat_item#chat_room_name { grid-area: room_name;} +.chat_item#chat_send { grid-area: send;} +.chat_item#chat_create { grid-area: create;} +.chat_item#chat_user { grid-area: user;} +.chat_item#chat_back { grid-area: back;} +.chat_item#chat_panel_home { grid-area: panel_home;} +.chat_item#chat_panel_new { grid-area: panel_new;} +.chat_item#chat_panel_msg { grid-area: panel_msg;} +.chat_item#chat_panel_write { grid-area: panel_write;} +.chat_item#chat_panel_settings { grid-area: panel_settings;} +.chat_item#chat_panel_room_set { grid-area: panel_room_set;} +.chat_item#chat_panel_protected { grid-area: panel_protected;} +.chat_item#chat_panel_create { grid-area: panel_create;} +.chat_item#chat_panel_user { grid-area: panel_user;} +.chat_item#chat_panel_mute { grid-area: panel_mute;} + +#chat_box { + display: grid; + position: fixed; + bottom: 20px; + right: 20px; + + gap: 5px; + padding: 5px; + width: 300px; + height: 400px; + + border: 1px solid black; +} + diff --git a/tests_hugo/chat_node/chat_client/style/chat__global.css b/tests_hugo/chat_node/chat_client/style/chat__global.css new file mode 100644 index 00000000..2c5e8bf1 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/chat__global.css @@ -0,0 +1,67 @@ + + +/* Hide scrollbar +*/ +#chat_box * { + -ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ +} +#chat_box *::-webkit-scrollbar { + display: none; /* Chrome, Safari and Opera */ +} + + +/* p in chat_box +*/ +#chat_box p { + padding: 10px; + font-size: 15px; + font-family: Cantarell; +} + + +/* show child only if it's alone +*/ +#chat_box .__show_if_only_child { + display: none; +} +#chat_box .__show_if_only_child:only-child { + display: flex; + color: rgb(100, 100, 100); +} + + +/* separation line under controls +*/ +#chat_box .chat_item.chat_panel { + border-top: 1px solid black; +} + + +/* text align +*/ +#chat_box p.__center { + text-align: center; +} +#chat_box p.__left { + text-align: left; +} +#chat_box p.__right { + text-align: right; +} + + +/* default align items +*/ +#chat_box .chat_item > * { + margin: 0px; +} + + +/* display content +*/ +#chat_box .__content{ + display: content; +} + + diff --git a/tests_hugo/chat_node/chat_client/style/chat_blocked.css b/tests_hugo/chat_node/chat_client/style/chat_blocked.css new file mode 100644 index 00000000..1d000227 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/chat_blocked.css @@ -0,0 +1,39 @@ + +/* +https://www.fileformat.info/info/unicode/category/So/list.htm +U+1F512 LOCK 🔒 +U+1F513 OPEN LOCK 🔓 +*/ + +#chat_box .blocked { + padding-left: 30px; +} +#chat_box .blocked::before { + content: ""; + position: absolute; + top: calc(50% - 2px); + left: 10px; + cursor: pointer; + width: 13px; + height: 10px; + border-radius: 2px; + /* + */ + background-color: rgb(110, 110, 110); +} +#chat_box .blocked::after { + content: ""; + position: absolute; + top: calc(50% - 9px); + left: 12px; + cursor: pointer; + width: 9px; + height: 13px; + border-radius: 5px; + box-sizing: border-box; + /* + background-color: red; + */ + border: 3px solid rgb(110, 110, 110); +} + diff --git a/tests_hugo/chat_node/chat_client/style/chat_buttons.css b/tests_hugo/chat_node/chat_client/style/chat_buttons.css new file mode 100644 index 00000000..d8216f8a --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/chat_buttons.css @@ -0,0 +1,55 @@ + +#chat_box button { + display: flex; + width: auto; + cursor: pointer; + outline: none; + border: none; + background-color: rgb(220, 220, 220); +} +#chat_box button p { + width: 100%; + text-align: center; +} +#chat_box button.chat_item:hover, +#chat_box .chat_item button:hover { + background-color: rgb(200, 200, 200); +} +#chat_box button.chat_item:active, +#chat_box .chat_item button:active { + background-color: rgb(190, 190, 190); +} + + +/* BTN LIST + add or remove '.btn' to toggle the hover effect +*/ +#chat_box .list_btn button { + margin: 0px; + background-color: transparent; +} +#chat_box .list_btn { + background-color: rgb(240, 240, 240); +} + + +/* BACK +*/ +#chat_box .chat_item.chat_back button { + width: 30px; + height: 100%; + background-color: transparent; + display: none; +} +#chat_box .chat_item.chat_back button::before { + content: ""; + position: absolute; + top: calc(50% - 6px - 1px); + left: 6px; + width: 14px; + height: 14px; + border-left: 1px solid black; + border-bottom: 1px solid black; + transform: rotate(45deg); +} + diff --git a/tests_hugo/chat_node/chat_client/style/chat_close.css b/tests_hugo/chat_node/chat_client/style/chat_close.css new file mode 100644 index 00000000..3da38aa6 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/chat_close.css @@ -0,0 +1,20 @@ +#chat_box .chat_item#chat_close { + width: 30px; +} +/* add or remove '.chat_item' to toggle the hover effect */ +#chat_box button.chat_item.chat_close { + width: 100%; + height: 100%; + padding: 0px; + background-color: transparent; +} +#chat_close::before { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 5px; + width: 20px; + height: 2px; + background-color: black; +} + diff --git a/tests_hugo/chat_node/chat_client/style/chat_form.css b/tests_hugo/chat_node/chat_client/style/chat_form.css new file mode 100644 index 00000000..0c04c966 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/chat_form.css @@ -0,0 +1,120 @@ + +/* default element take all space on each line +*/ +#chat_box .chat_item form { + margin: 0px auto; +} +#chat_box .chat_item form * { + margin: 0px; +} + + +/* radio elements style check +*/ +#chat_box .chat_item form input[type=radio] { + display: none; +} +#chat_box .chat_item form label._radio { + margin: 0px 0px 0px auto; + padding-right: 10px; + cursor: pointer; +} +#chat_box .chat_item form label._radio::after { + content: ""; + position: absolute; + top: calc(50% - 6px); + right: 0px; + width: 12px; + height: 12px; + border-radius: 6px; + border: 2px solid rgb(150, 150, 150); + box-sizing: border-box; + cursor: pointer; +} +#chat_box .chat_item form input[type=radio]:checked ++ label._radio::after { + background-color: rgb(200, 200, 200); +} + + +/* change next element on check +*/ +#chat_box form ._check_change_next:checked ~ ._is_hidden { + display: flex; +} +#chat_box form ._check_change_next:checked ~ ._is_not_gray { + pointer-events: none; + color: rgb(100, 100, 100); +} +#chat_box form ._is_hidden { + display: none; +} + + +/* submit button + https://www.fileformat.info/info/unicode/category/So/list.htm + U+21AA RIGHTWARDS ARROW WITH HOOK ↪ + U+21B3 DOWNWARDS ARROW WITH TIP RIGHTWARDS ↳ + U+2BA1 DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS ⮡ + U+2BB1 RIBBON ARROW DOWN RIGHT ⮱ + U+2BA9 BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW ⮩ +*/ +#chat_box .chat_item form input[type=submit] { + padding: 0px 10px; + border: none; + margin: 10px 0px 0px auto; + cursor: pointer; + background-color: rgb(220, 220, 220); +} +#chat_box .chat_item form input[type=submit]:hover { + background-color: rgb(200, 200, 200); +} + + +/* select +*/ +#chat_box .chat_item form label._select { + flex-direction: row; + margin-left: auto; +} +#chat_box .chat_item form select { + margin: auto 0px; + background-color: rgb(220, 220, 220); + border: none; + padding: 5px; + cursor: pointer; +} +#chat_box .chat_item form select:hover { + background-color: rgb(200, 200, 200); +} + + +/* checkbox + + +*/ +#chat_box .chat_item form input[type=checkbox] { + display: none; +} +#chat_box .chat_item form label._checkbox { + margin: 0px 0px 0px auto; + padding-right: 10px; + cursor: pointer; +} +#chat_box .chat_item form label._checkbox::after { + content: ""; + position: absolute; + top: calc(50% - 6px); + right: 0px; + width: 12px; + height: 12px; + border: 2px solid rgb(150, 150, 150); + box-sizing: border-box; + cursor: pointer; +} +#chat_box .chat_item form input[type=checkbox]:checked ++ label._checkbox::after { + background-color: rgb(200, 200, 200); +} + + diff --git a/tests_hugo/chat_node/chat_client/style/chat_msg.css b/tests_hugo/chat_node/chat_client/style/chat_msg.css new file mode 100644 index 00000000..76aa5e16 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/chat_msg.css @@ -0,0 +1,75 @@ + +#chat_box #chat_panel_msg { + flex-direction: column-reverse; + overflow: scroll; + border: 1px solid black; +} +#chat_box #chat_panel_msg #chat_api_msg_thread { + flex-direction: column; + width: 100%; + padding: 0px 5px; + margin-bottom: 0px; +} +#chat_box #chat_panel_msg #chat_api_msg_thread .chat_msg { + white-space: pre-wrap; + margin: 5px auto; + padding: 5px; + border-radius: 5px; +} + + + +/* * * * * * * * * * * * * * + ALL MSG +*/ +#chat_box #chat_panel_msg #chat_api_msg_thread .chat_msg { + margin-left: 0px; + background-color: rgb(210, 210, 210); + max-width: 80%; +} +#chat_box #chat_panel_msg #chat_api_msg_thread .chat_msg p { + padding: 0px; +} +#chat_box #chat_panel_msg #chat_api_msg_thread .chat_msg p.name { + margin: 0px; + margin-bottom: 5px; + font-size: 12px; + color: rgb(100, 100, 100); +} +#chat_box #chat_panel_msg #chat_api_msg_thread .chat_msg p.msg { + /* + margin: 5px 0px; + line-height: 8px; + */ +} + + +/* * * * * * * * * * * * * * + MSG PERSO +*/ +#chat_box #chat_panel_msg #chat_api_msg_thread .chat_msg.me { + margin-right: 0px; + margin-left: auto; + background-color: rgb(210, 110, 10); +} +#chat_box #chat_panel_msg #chat_api_msg_thread .chat_msg.me p.name { + display: none; +} + + +/* * * * * * * * * * * * * * + MSG SERVER +*/ +#chat_box #chat_panel_msg #chat_api_msg_thread .chat_msg.SERVER { + margin-left: auto; + background-color: transparent; +} +#chat_box #chat_panel_msg #chat_api_msg_thread .chat_msg.SERVER p.name { + display: none; +} +#chat_box #chat_panel_msg #chat_api_msg_thread .chat_msg.SERVER p.msg { + margin: 0px auto; + font-size: 12px; + color: rgb(100, 100, 100); +} + diff --git a/tests_hugo/chat_node/chat_client/style/chat_panels.css b/tests_hugo/chat_node/chat_client/style/chat_panels.css new file mode 100644 index 00000000..37722b3b --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/chat_panels.css @@ -0,0 +1,3 @@ +#chat_box .chat_panel { + overflow-y: scroll; +} diff --git a/tests_hugo/chat_node/chat_client/style/chat_write.css b/tests_hugo/chat_node/chat_client/style/chat_write.css new file mode 100644 index 00000000..bef5b542 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/chat_write.css @@ -0,0 +1,36 @@ + +#chat_box .chat_item#chat_panel_write { + border: none; + overflow: visible; +} +#chat_box .chat_item#chat_panel_write .text_area { + display: block; + position: absolute; + bottom: 0px; + left: 0px; + width: 100%; + overflow-x: hidden; + overflow-y: scroll; + background-color: white; + border: 1px solid black; +} +#chat_box .chat_item#chat_panel_write .text_area * { + display: block ruby; +} +/* if .text_area is a contenteditable div +*/ +#chat_box .chat_item#chat_panel_write .text_area { + height: auto; + min-height: 100%; + max-height: 300px; +} +/* if .text_area is a textarea +*/ +#chat_box .chat_item#chat_panel_write textarea.text_area { + resize: none; + height: 100px; +} +#chat_box .chat_item#chat_panel_write textarea.text_area:placeholder-shown { + height: 100%; +} + diff --git a/tests_hugo/chat_node/chat_client/style/layout_close.css b/tests_hugo/chat_node/chat_client/style/layout_close.css new file mode 100644 index 00000000..45a01490 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/layout_close.css @@ -0,0 +1,58 @@ + +#chat_box.close { + gap: 0px; + padding: 0px; + width: auto; + height: auto; + grid: + ' chat ' auto + / auto ; +} +#chat_box.close .chat_item#chat_chat { + display: flex; +} + + +/* + * COLLAPSE + +.chat._item:not(.open_close) { + display: none; +} +#chat_input:checked ~ +#chat_box { + gap: 5px; + padding: 5px; + width: 300px; + height: 400px; +} +#chat_input:checked ~ +#chat_box .chat._item { + display: flex; +} +#chat_input:checked ~ +#chat_box .chat._item.open_close p { + display: none; +} +#chat_input:checked ~ +#chat_box .chat._item.open_close { + width: 30px; + height: 20px; + padding: 0px; + justify-self: end; + background-color: transparent; + border: none; +} +#chat_input:checked ~ +#chat_box .chat._item.open_close::before { + content: ""; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + height: 4px; + width: 15px; + background-color: black; +} + */ + diff --git a/tests_hugo/chat_node/chat_client/style/layout_create.css b/tests_hugo/chat_node/chat_client/style/layout_create.css new file mode 100644 index 00000000..9a181b4b --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/layout_create.css @@ -0,0 +1,28 @@ + +#chat_box.create { + grid: + ' back create close ' auto + ' panel_create panel_create panel_create ' 1fr + / auto 1fr auto ; +} +#chat_box.create .chat_item#chat_back, +#chat_box.create .chat_item#chat_create, +#chat_box.create .chat_item#chat_close, +#chat_box.create .chat_item#chat_panel_create { + display: flex; +} + + +/* back btn +*/ +#chat_box.create .chat_item.chat_back button.back_new { + display: flex; +} + + +/* title "create" appearance +*/ +#chat_box.create .chat_item.chat_create { + text-align: center; +} + diff --git a/tests_hugo/chat_node/chat_client/style/layout_home.css b/tests_hugo/chat_node/chat_client/style/layout_home.css new file mode 100644 index 00000000..83d64e7d --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/layout_home.css @@ -0,0 +1,54 @@ + +#chat_box.home { + grid: + ' settings new close ' auto + ' panel_home panel_home panel_home ' 1fr + / auto 1fr auto ; +} +#chat_box.home .chat_item#chat_settings, +#chat_box.home .chat_item#chat_new, +#chat_box.home .chat_item#chat_close, +#chat_box.home .chat_item#chat_panel_home { + display: flex; +} + + +/* button "new" appearance +*/ +/* add or remove '.chat_item' to toggle the hover effect */ +#chat_box.home button.chat_new { + width: auto; + background-color: transparent; +} + + +/* button "settings" as 3 dots +*/ +#chat_box.home .chat_item#chat_settings p { + display: none; +} +#chat_box.home button.chat_item#chat_settings { + width: 30px; + height: 100%; + padding: 0px; +} +/* add or remove '.chat_item' to toggle the hover effect */ +#chat_box.home button.chat_item#chat_settings { + background-color: transparent; +} +#chat_box.home .chat_item#chat_settings::after { + content: '\2807'; + font-size: 20px; + position: absolute; + top: 50%; + left: 0px; + width: 100%; + height: auto; + text-align: center; + transform: translateY(-50%); + cursor: pointer; + /* + background-color: black; + */ +} + diff --git a/tests_hugo/chat_node/chat_client/style/layout_mute.css b/tests_hugo/chat_node/chat_client/style/layout_mute.css new file mode 100644 index 00000000..667809f8 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/layout_mute.css @@ -0,0 +1,30 @@ + +#chat_box.mute { + grid: + ' back user close ' auto + ' panel_mute panel_mute panel_mute ' 1fr + / auto 1fr auto ; +} +#chat_box.mute .chat_item#chat_back, +#chat_box.mute .chat_item#chat_user, +#chat_box.mute .chat_item#chat_close, +#chat_box.mute .chat_item#chat_panel_mute { + display: flex; +} + + +/* back btn +*/ +#chat_box.mute .chat_item.chat_back button.back_user { + display: flex; +} + + +/* title "mute" appearance +*/ +#chat_box.mute .chat_item.chat_user { + text-align: center; +} + + + diff --git a/tests_hugo/chat_node/chat_client/style/layout_new.css b/tests_hugo/chat_node/chat_client/style/layout_new.css new file mode 100644 index 00000000..ddaf8e14 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/layout_new.css @@ -0,0 +1,40 @@ + +#chat_box.new { + grid: + ' back new close ' auto + ' panel_new panel_new panel_new ' 1fr + / auto 1fr auto ; +} +#chat_box.new .chat_item#chat_back, +#chat_box.new .chat_item#chat_new, +#chat_box.new .chat_item#chat_close, +#chat_box.new .chat_item#chat_panel_new { + display: flex; +} + + +/* back btn +*/ +#chat_box.new .chat_item.chat_back button.back_home { + display: flex; +} + + +/* button "new" appearance +*/ +/* add or remove '.chat_item' to toggle the hover effect */ +#chat_box.new button.chat_item.chat_new { + width: auto; + background-color: transparent; + pointer-events: none; +} + + +/* button "create" appearance +*/ +#chat_box.new .chat_item button.chat_create_btn { + margin: 10px 0px; +} + + + diff --git a/tests_hugo/chat_node/chat_client/style/layout_protected.css b/tests_hugo/chat_node/chat_client/style/layout_protected.css new file mode 100644 index 00000000..875a4c37 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/layout_protected.css @@ -0,0 +1,36 @@ + +#chat_box.protected { + grid: + ' back room_name close ' auto + ' panel_protected panel_protected panel_protected ' 1fr + / auto 1fr auto ; +} +#chat_box.protected .chat_item#chat_back, +#chat_box.protected .chat_item#chat_room_name, +#chat_box.protected .chat_item#chat_close, +#chat_box.protected .chat_item#chat_panel_protected { + display: flex; +} + + +/* back btn +*/ +#chat_box.protected .chat_item.chat_back button.back_new { + display: flex; +} + + +/* button "" appearance + add or remove '.chat_item' to toggle the hover effect +*/ +#chat_box.protected button.chat_item.chat_room_name { + width: auto; + background-color: transparent; + pointer-events: none; +} + +#chat_box #chat_protected_title { + margin-top: 30px; +} + + diff --git a/tests_hugo/chat_node/chat_client/style/layout_room.css b/tests_hugo/chat_node/chat_client/style/layout_room.css new file mode 100644 index 00000000..2efaf9ce --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/layout_room.css @@ -0,0 +1,34 @@ + +#chat_box.room { + grid: + ' back room_name room_name close ' auto + ' panel_msg panel_msg panel_msg panel_msg ' 1fr + ' panel_write panel_write send send ' auto + / auto 1fr auto auto ; +} +#chat_box.room .chat_item#chat_back, +#chat_box.room .chat_item#chat_room_name, +#chat_box.room .chat_item#chat_close, +#chat_box.room .chat_item#chat_panel_msg, +#chat_box.room .chat_item#chat_send, +#chat_box.room .chat_item#chat_panel_write { + display: flex; +} + + +/* back btn +*/ +#chat_box.room .chat_item.chat_back button.back_home { + display: flex; +} + + +/* button "" appearance +*/ +/* add or remove '.chat_item' to toggle the hover effect */ +#chat_box.room button.chat_room_name { + width: auto; + background-color: transparent; +} + + diff --git a/tests_hugo/chat_node/chat_client/style/layout_room_set.css b/tests_hugo/chat_node/chat_client/style/layout_room_set.css new file mode 100644 index 00000000..b2760ea4 --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/layout_room_set.css @@ -0,0 +1,38 @@ + +#chat_box.room_set { + grid: + ' back room_name close ' auto + ' panel_room_set panel_room_set panel_room_set ' 1fr + / auto 1fr auto ; +} +#chat_box.room_set .chat_item#chat_back, +#chat_box.room_set .chat_item#chat_room_name, +#chat_box.room_set .chat_item#chat_close, +#chat_box.room_set .chat_item#chat_panel_room_set { + display: flex; +} + + +/* back btn +*/ +#chat_box.room_set .chat_item.chat_back button.back_room { + display: flex; +} + + +/* button "" appearance +*/ +/* add or remove '.chat_item' to toggle the hover effect */ +#chat_box.room_set button.chat_item.chat_room_name { + width: auto; + background-color: transparent; + pointer-events: none; +} + + +/* button "leave" appearance +*/ +#chat_box.room_set .chat_item button.chat_leave_btn { + margin: 10px 0px; +} + diff --git a/tests_hugo/chat_node/chat_client/style/layout_settings.css b/tests_hugo/chat_node/chat_client/style/layout_settings.css new file mode 100644 index 00000000..632cab7b --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/layout_settings.css @@ -0,0 +1,32 @@ + +#chat_box.settings { + grid: + ' back settings close ' auto + ' panel_settings panel_settings panel_settings ' 1fr + / auto 1fr auto ; +} +#chat_box.settings .chat_item#chat_back, +#chat_box.settings .chat_item#chat_settings, +#chat_box.settings .chat_item#chat_close, +#chat_box.settings .chat_item#chat_panel_settings { + display: flex; +} + + +/* back btn +*/ +#chat_box.settings .chat_item.chat_back button.back_home { + display: flex; +} + + +/* button "settings" appearance +*/ +/* add or remove '.chat_item' to toggle the hover effect */ +#chat_box.settings button.chat_item.chat_settings { + width: auto; + background-color: transparent; + pointer-events: none; +} + + diff --git a/tests_hugo/chat_node/chat_client/style/layout_user.css b/tests_hugo/chat_node/chat_client/style/layout_user.css new file mode 100644 index 00000000..fb32538d --- /dev/null +++ b/tests_hugo/chat_node/chat_client/style/layout_user.css @@ -0,0 +1,80 @@ + +#chat_box.user { + grid: + ' back user close ' auto + ' room_name room_name room_name ' auto + ' panel_user panel_user panel_user ' 1fr + / auto 1fr auto ; +} +#chat_box.user .chat_item#chat_back, +#chat_box.user .chat_item#chat_user, +#chat_box.user .chat_item#chat_close, +#chat_box.user .chat_item#chat_panel_user { + display: flex; +} + + +/* title "user" appearance +*/ +#chat_box.user .chat_item.chat_user { + text-align: center; +} + + +/* for line height +*/ +#chat_box.user .chat_item.chat_panel_user { + margin-top: -5px; +} + + +/* room_name appearance +*/ +#chat_box.user button.chat_item#chat_room_name { + background-color: transparent; + border-top: 1px solid black; +} + + +/* back btn +*/ +#chat_box.user .chat_item.chat_back button.back_home {display: flex;} +/* from settings */ +#chat_box._settings .chat_item.chat_back button.btn {display: none;} +#chat_box._settings .chat_item.chat_back button.back_settings {display: flex;} +/* from room settings */ +#chat_box._room_set .chat_item.chat_back button.btn {display: none;} +#chat_box._room_set .chat_item.chat_back button.back_room_set {display: flex;} + + +/* buttons appearance +*/ +#chat_box.user .chat_item.chat_panel_user .chat_user_btn_wrapper { + margin: 0px auto; +} +#chat_box.user .chat_item.chat_panel_user button { + margin: 10px; +} +#chat_box.user #chat_user_admin { + margin: 0px; +} + + +/* toggle buttons according to chat_box class +*/ +/* block/unblock */ +#chat_box.user #chat_user_unblock {display: none;} +#chat_box.user._blocked #chat_user_block {display: none;} +#chat_box.user._blocked #chat_user_unblock {display: flex;} +/* admin if from room */ +#chat_box.user #chat_user_admin {display: none;} +#chat_box.user._room_set._admin #chat_user_admin {display: flex;} +/* room_name if from room */ +#chat_box.user #chat_room_name {display: none;} +#chat_box.user._room_set #chat_room_name {display: flex;} +/* mute/unmute */ +#chat_box.user #chat_user_unmute {display: none;} +#chat_box.user._muted #chat_user_mute {display: none;} +#chat_box.user._muted #chat_user_unmute {display: flex;} + + diff --git a/tests_hugo/chat_node/chat_server/event_adduser.js b/tests_hugo/chat_node/chat_server/event_adduser.js new file mode 100644 index 00000000..4e9a9f82 --- /dev/null +++ b/tests_hugo/chat_node/chat_server/event_adduser.js @@ -0,0 +1,21 @@ +const add_user = (socket, username, usernames, rooms) => { + + //console.log(`adduser: ${username}, ${usernames[username]}`); + + // store the username in the socket session for this client + socket.username = username; + // store the room name in the socket session for this client + socket.room = 'room1'; + // add the client's username to the global list + usernames[username] = username; + // send client to room 1 + socket.join('room1'); + // echo to client they've connected + socket.emit('updatemsg', 'SERVER', 'you have connected to room1'); + // echo to room 1 that a person has connected to their room + socket.broadcast.to('room1').emit('updatemsg', 'SERVER', username + ' has connected to this room'); + socket.emit('updaterooms', rooms); +}; + +module.exports = add_user; + diff --git a/tests_hugo/chat_node/chat_server/event_createroom.js b/tests_hugo/chat_node/chat_server/event_createroom.js new file mode 100644 index 00000000..88c10f08 --- /dev/null +++ b/tests_hugo/chat_node/chat_server/event_createroom.js @@ -0,0 +1,9 @@ +const create_room = (room_name) => { + //console.log('createroom'); + let last_room = rooms[rooms.length - 1]; + rooms.push({ name: room_name, id: last_room.id + 1 }); + socket.emit('updaterooms', rooms); +}; + +module.exports = create_room; + diff --git a/tests_hugo/chat_node/chat_server/event_sendmsg.js b/tests_hugo/chat_node/chat_server/event_sendmsg.js new file mode 100644 index 00000000..1a5229a2 --- /dev/null +++ b/tests_hugo/chat_node/chat_server/event_sendmsg.js @@ -0,0 +1,8 @@ +const send_msg = (socket, msg) => { + //console.log('message from: ' + socket.username); + //console.log('message received: ' + msg); + socket.to(socket.room).emit('updatemsg', socket.username, msg); +}; + +module.exports = send_msg; + diff --git a/tests_hugo/chat_node/chat_server/package-lock.json b/tests_hugo/chat_node/chat_server/package-lock.json new file mode 100644 index 00000000..c5aef680 --- /dev/null +++ b/tests_hugo/chat_node/chat_server/package-lock.json @@ -0,0 +1,1360 @@ +{ + "name": "chat_server", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "cors": "^2.8.5", + "express": "^4.18.2", + "socket.io": "^4.5.4" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "node_modules/@types/node": { + "version": "18.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.10.tgz", + "integrity": "sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/engine.io": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.1.tgz", + "integrity": "sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/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==" + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/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/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/socket.io": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.4.tgz", + "integrity": "sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.1", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.2.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + }, + "node_modules/socket.io-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser/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==" + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/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==" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + }, + "dependencies": { + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "@types/node": { + "version": "18.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.10.tgz", + "integrity": "sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==" + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "engine.io": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.1.tgz", + "integrity": "sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA==", + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "dependencies": { + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "socket.io": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.4.tgz", + "integrity": "sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ==", + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.1", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.2.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + }, + "socket.io-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "requires": {} + } + } +} diff --git a/tests_hugo/chat_node/chat_server/package.json b/tests_hugo/chat_node/chat_server/package.json new file mode 100644 index 00000000..1b6c95e3 --- /dev/null +++ b/tests_hugo/chat_node/chat_server/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "cors": "^2.8.5", + "express": "^4.18.2", + "socket.io": "^4.5.4" + } +} diff --git a/tests_hugo/chat_node/chat_server/server.js b/tests_hugo/chat_node/chat_server/server.js new file mode 100644 index 00000000..09cc7410 --- /dev/null +++ b/tests_hugo/chat_node/chat_server/server.js @@ -0,0 +1,74 @@ + +const express = require('express'); +const app = express(); +const http = require('http'); +const server = http.createServer(app); +const { Server } = require("socket.io"); +// https://socket.io/docs/v4/handling-cors/ +const io = new Server(server, { + cors: { + // change this for the real front origin + origin: "*" + } +}); +const send_msg = require('./event_sendmsg'); +const add_user = require('./event_adduser'); +const create_room = require('./event_createroom'); + +let usernames = {}; +let rooms = [ + { name: 'room1', id: 1 }, + { name: 'room2', id: 2 }, + { name: 'room3', id: 3 } +]; +let last_room = 0; + +io.on('connection', (socket) => { + + socket.on('adduser', (username) => { + add_user(socket, username, usernames, rooms); + }); + + socket.on('sendmsg', (msg) => { + send_msg(socket, msg); + }); + + socket.on('createroom', (room_name) => { + create_room(room_name); + }); + + socket.on('joinlastroom', () => { + if (socket.room !== null) + socket.emit('updaterooms', socket.room); + }); + + socket.on('switchroom', function(newroom){ + // leave the current room (stored in session) + socket.leave(socket.room); + // join new room, received as function parameter + socket.join(newroom); + socket.emit('updatechat', 'SERVER', 'you have connected to '+ newroom); + // sent message to OLD room + socket.broadcast.to(socket.room).emit('updatechat', 'SERVER', socket.username+' has left this room'); + // update socket session room title + socket.room = newroom; + socket.broadcast.to(newroom).emit('updatechat', 'SERVER', socket.username+' has joined this room'); + // socket.emit('updaterooms', rooms, newroom); + }); + + socket.on('disconnect', () => { + // remove the username from global usernames list + delete usernames[socket.username]; + // update list of users in chat, client-side + io.sockets.emit('updateusers', usernames); + // echo globally that this client has left + socket.broadcast.emit('updatechat', 'SERVER', socket.username + ' has disconnected'); + socket.leave(socket.room); + }); + +}); + +server.listen(3000, function () { + console.log('server running on 3000'); +}) + diff --git a/tests_hugo/js_async/async.js b/tests_hugo/js_async/async.js new file mode 100644 index 00000000..c87417f4 --- /dev/null +++ b/tests_hugo/js_async/async.js @@ -0,0 +1,133 @@ + + + +/* * * * * * * * * * * * * * * * * * * + UTILITIES +*/ + +function resolveAfter2Seconds() { + return new Promise(resolve => { + setTimeout(() => { + resolve(spent_time(ori_date) + 'lente'); + }, 2000); + }); +} +function resolveAfter1Seconds() { + return new Promise(resolve => { + setTimeout(() => { + resolve(spent_time(ori_date) + 'rapide'); + }, 1000); + }); +} +function print_time(my_date = new Date) { + let my_time = my_date.getSeconds(); + my_time += ":"; + my_time += my_date.getMilliseconds(); + return '[' + my_time + '] '; +} +function spent_time(ori_date) { + let my_date = new Date(); + + let my_seconds = my_date.getSeconds() - ori_date.getSeconds(); + if (my_seconds < 0 ) my_seconds += 60; + + let my_millis = my_date.getMilliseconds() - ori_date.getMilliseconds(); + if (my_millis < 0 ) my_millis += 1000; + + return '[' + my_seconds + ':' + my_millis + '] '; +} + + + + + + + + + + +/* * * * * * * * * * * * * * * * * * * + TESTS +/* + + async function asyncCall() { + console.log(spent_time(ori_date) + 'calling'); + const lente = await resolveAfter2Seconds(); + const rpide = await resolveAfter1Seconds(); + console.log(spent_time(ori_date) + lente); + console.log(spent_time(ori_date) + rpide); + } +// "[0:1] calling" +// "[0:4] after" +// "[3:6] [2:4] lente" +// "[3:15] [3:6] rapide" + */ + +/* + function asyncCall() { + console.log(spent_time(ori_date) + 'calling'); + const lente = resolveAfter2Seconds(); + const rpide = resolveAfter1Seconds(); + console.log(spent_time(ori_date) + lente); + console.log(spent_time(ori_date) + rpide); + } +// "[0:1] calling" +// "[0:4] [object Promise]" +// "[0:12] [object Promise]" +// "[0:19] after" + */ + +/* + function asyncCall() { + console.log(spent_time(ori_date) + 'calling'); + resolveAfter2Seconds().then(message => console.log(spent_time(ori_date) + message)) + .then(() => resolveAfter1Seconds()).then(message => console.log(spent_time(ori_date) + message)); + } +// "[0:1] calling" +// "[0:4] after" +// "[2:4] [2:4] lente" +// "[3:15] [3:15] rapide" + */ + +/* + async function asyncCall() { + console.log(spent_time(ori_date) + 'calling'); + const lente = await resolveAfter2Seconds(); + console.log(spent_time(ori_date) + 'middle'); + const rpide = await resolveAfter1Seconds(); + console.log(spent_time(ori_date) + lente); + console.log(spent_time(ori_date) + rpide); + } +// "[0:1] calling" +// "[0:2] after" +// "[2:4] middle" +// "[3:7] [2:4] lente" +// "[3:8] [3:6] rapide" + */ + +async function asyncCall() { + console.log(spent_time(ori_date) + 'calling'); + const lente = resolveAfter2Seconds(); + const rpide = resolveAfter1Seconds(); + console.log(spent_time(ori_date) + await lente); + console.log(spent_time(ori_date) + await rpide); +} +// "[0:0] calling" +// "[0:3] after" +// "[0:3] [2:4] lente" +// "[2:5] [1:3] rapide" + + + + + + +/* * * * * * * * * * * * * * * * * * * + LAUNCH TEST +*/ + +let ori_date = new Date(); +asyncCall(); + +console.log(spent_time(ori_date) + "after"); + diff --git a/tests_hugo/nest_course/.eslintrc.js b/tests_hugo/nest_course/.eslintrc.js new file mode 100644 index 00000000..8f5aedb7 --- /dev/null +++ b/tests_hugo/nest_course/.eslintrc.js @@ -0,0 +1,25 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + tsconfigRootDir : __dirname, + sourceType: 'module', + }, + plugins: ['@typescript-eslint/eslint-plugin'], + extends: [ + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + ], + root: true, + env: { + node: true, + jest: true, + }, + ignorePatterns: ['.eslintrc.js'], + rules: { + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + }, +}; diff --git a/tests_hugo/nest_course/.prettierrc b/tests_hugo/nest_course/.prettierrc new file mode 100644 index 00000000..dcb72794 --- /dev/null +++ b/tests_hugo/nest_course/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "trailingComma": "all" +} \ No newline at end of file diff --git a/tests_hugo/nest_course/README.md b/tests_hugo/nest_course/README.md new file mode 100644 index 00000000..00a13b11 --- /dev/null +++ b/tests_hugo/nest_course/README.md @@ -0,0 +1,73 @@ +

+ Nest Logo +

+ +[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 +[circleci-url]: https://circleci.com/gh/nestjs/nest + +

A progressive Node.js framework for building efficient and scalable server-side applications.

+

+NPM Version +Package License +NPM Downloads +CircleCI +Coverage +Discord +Backers on Open Collective +Sponsors on Open Collective + + Support us + +

+ + +## Description + +[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. + +## Installation + +```bash +$ npm install +``` + +## Running the app + +```bash +# development +$ npm run start + +# watch mode +$ npm run start:dev + +# production mode +$ npm run start:prod +``` + +## Test + +```bash +# unit tests +$ npm run test + +# e2e tests +$ npm run test:e2e + +# test coverage +$ npm run test:cov +``` + +## Support + +Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). + +## Stay in touch + +- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) +- Website - [https://nestjs.com](https://nestjs.com/) +- Twitter - [@nestframework](https://twitter.com/nestframework) + +## License + +Nest is [MIT licensed](LICENSE). diff --git a/tests_hugo/nest_course/dist/app.controller.d.ts b/tests_hugo/nest_course/dist/app.controller.d.ts new file mode 100644 index 00000000..3859d69c --- /dev/null +++ b/tests_hugo/nest_course/dist/app.controller.d.ts @@ -0,0 +1,6 @@ +import { AppService } from './app.service'; +export declare class AppController { + private readonly appService; + constructor(appService: AppService); + getHello(): string; +} diff --git a/tests_hugo/nest_course/dist/app.controller.js b/tests_hugo/nest_course/dist/app.controller.js new file mode 100644 index 00000000..dcf0f773 --- /dev/null +++ b/tests_hugo/nest_course/dist/app.controller.js @@ -0,0 +1,34 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppController = void 0; +const common_1 = require("@nestjs/common"); +const app_service_1 = require("./app.service"); +let AppController = class AppController { + constructor(appService) { + this.appService = appService; + } + getHello() { + return this.appService.getHello(); + } +}; +__decorate([ + (0, common_1.Get)(), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", String) +], AppController.prototype, "getHello", null); +AppController = __decorate([ + (0, common_1.Controller)(), + __metadata("design:paramtypes", [app_service_1.AppService]) +], AppController); +exports.AppController = AppController; +//# sourceMappingURL=app.controller.js.map \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/app.controller.js.map b/tests_hugo/nest_course/dist/app.controller.js.map new file mode 100644 index 00000000..ba11630d --- /dev/null +++ b/tests_hugo/nest_course/dist/app.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.controller.js","sourceRoot":"","sources":["../src/app.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,+CAA2C;AAGpC,IAAM,aAAa,GAAnB,MAAM,aAAa;IACxB,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAGvD,QAAQ;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;CACF,CAAA;AAJC;IAAC,IAAA,YAAG,GAAE;;;;6CAGL;AANU,aAAa;IADzB,IAAA,mBAAU,GAAE;qCAE8B,wBAAU;GADxC,aAAa,CAOzB;AAPY,sCAAa"} \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/app.module.d.ts b/tests_hugo/nest_course/dist/app.module.d.ts new file mode 100644 index 00000000..09cdb35c --- /dev/null +++ b/tests_hugo/nest_course/dist/app.module.d.ts @@ -0,0 +1,2 @@ +export declare class AppModule { +} diff --git a/tests_hugo/nest_course/dist/app.module.js b/tests_hugo/nest_course/dist/app.module.js new file mode 100644 index 00000000..260159f4 --- /dev/null +++ b/tests_hugo/nest_course/dist/app.module.js @@ -0,0 +1,25 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppModule = void 0; +const common_1 = require("@nestjs/common"); +const app_controller_1 = require("./app.controller"); +const app_service_1 = require("./app.service"); +const coffees_controller_1 = require("./coffees/coffees.controller"); +const coffees_service_1 = require("./coffees/coffees.service"); +let AppModule = class AppModule { +}; +AppModule = __decorate([ + (0, common_1.Module)({ + imports: [], + controllers: [app_controller_1.AppController, coffees_controller_1.CoffeesController], + providers: [app_service_1.AppService, coffees_service_1.CoffeesService], + }) +], AppModule); +exports.AppModule = AppModule; +//# sourceMappingURL=app.module.js.map \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/app.module.js.map b/tests_hugo/nest_course/dist/app.module.js.map new file mode 100644 index 00000000..92687961 --- /dev/null +++ b/tests_hugo/nest_course/dist/app.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,qEAAiE;AACjE,+DAA2D;AAOpD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IALrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,CAAC,8BAAa,EAAE,sCAAiB,CAAC;QAC/C,SAAS,EAAE,CAAC,wBAAU,EAAE,gCAAc,CAAC;KACxC,CAAC;GACW,SAAS,CAAG;AAAZ,8BAAS"} \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/app.service.d.ts b/tests_hugo/nest_course/dist/app.service.d.ts new file mode 100644 index 00000000..0496e790 --- /dev/null +++ b/tests_hugo/nest_course/dist/app.service.d.ts @@ -0,0 +1,3 @@ +export declare class AppService { + getHello(): string; +} diff --git a/tests_hugo/nest_course/dist/app.service.js b/tests_hugo/nest_course/dist/app.service.js new file mode 100644 index 00000000..776993e2 --- /dev/null +++ b/tests_hugo/nest_course/dist/app.service.js @@ -0,0 +1,20 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppService = void 0; +const common_1 = require("@nestjs/common"); +let AppService = class AppService { + getHello() { + return 'Hello nest!'; + } +}; +AppService = __decorate([ + (0, common_1.Injectable)() +], AppService); +exports.AppService = AppService; +//# sourceMappingURL=app.service.js.map \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/app.service.js.map b/tests_hugo/nest_course/dist/app.service.js.map new file mode 100644 index 00000000..aef12e49 --- /dev/null +++ b/tests_hugo/nest_course/dist/app.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.service.js","sourceRoot":"","sources":["../src/app.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAGrC,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,QAAQ;QACN,OAAO,aAAa,CAAC;IACvB,CAAC;CACF,CAAA;AAJY,UAAU;IADtB,IAAA,mBAAU,GAAE;GACA,UAAU,CAItB;AAJY,gCAAU"} \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/coffees/coffees.controller.d.ts b/tests_hugo/nest_course/dist/coffees/coffees.controller.d.ts new file mode 100644 index 00000000..6db1b975 --- /dev/null +++ b/tests_hugo/nest_course/dist/coffees/coffees.controller.d.ts @@ -0,0 +1,10 @@ +import { CoffeesService } from './coffees.service'; +export declare class CoffeesController { + private readonly coffeesService; + constructor(coffeesService: CoffeesService); + findAll(paginationQuery: any): import("./entities/coffee.entity").Coffee[]; + findOne(id: string): import("./entities/coffee.entity").Coffee; + create(body: any): void; + update(id: string, body: any): void; + remove(id: string): void; +} diff --git a/tests_hugo/nest_course/dist/coffees/coffees.controller.js b/tests_hugo/nest_course/dist/coffees/coffees.controller.js new file mode 100644 index 00000000..4da97495 --- /dev/null +++ b/tests_hugo/nest_course/dist/coffees/coffees.controller.js @@ -0,0 +1,79 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CoffeesController = void 0; +const common_1 = require("@nestjs/common"); +const coffees_service_1 = require("./coffees.service"); +let CoffeesController = class CoffeesController { + constructor(coffeesService) { + this.coffeesService = coffeesService; + } + findAll(paginationQuery) { + return this.coffeesService.findAll(); + } + findOne(id) { + return this.coffeesService.findOne(id); + } + create(body) { + return this.coffeesService.create(body); + } + update(id, body) { + return this.coffeesService.update(id, body); + } + remove(id) { + return this.coffeesService.remove(id); + } +}; +__decorate([ + (0, common_1.Get)(), + __param(0, (0, common_1.Query)()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], CoffeesController.prototype, "findAll", null); +__decorate([ + (0, common_1.Get)(':id'), + __param(0, (0, common_1.Param)('id')), + __metadata("design:type", Function), + __metadata("design:paramtypes", [String]), + __metadata("design:returntype", void 0) +], CoffeesController.prototype, "findOne", null); +__decorate([ + (0, common_1.Post)(), + __param(0, (0, common_1.Body)()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) +], CoffeesController.prototype, "create", null); +__decorate([ + (0, common_1.Patch)(':id'), + __param(0, (0, common_1.Param)('id')), + __param(1, (0, common_1.Body)()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [String, Object]), + __metadata("design:returntype", void 0) +], CoffeesController.prototype, "update", null); +__decorate([ + (0, common_1.Delete)(':id'), + __param(0, (0, common_1.Param)('id')), + __metadata("design:type", Function), + __metadata("design:paramtypes", [String]), + __metadata("design:returntype", void 0) +], CoffeesController.prototype, "remove", null); +CoffeesController = __decorate([ + (0, common_1.Controller)('coffees'), + __metadata("design:paramtypes", [coffees_service_1.CoffeesService]) +], CoffeesController); +exports.CoffeesController = CoffeesController; +//# sourceMappingURL=coffees.controller.js.map \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/coffees/coffees.controller.js.map b/tests_hugo/nest_course/dist/coffees/coffees.controller.js.map new file mode 100644 index 00000000..913eed57 --- /dev/null +++ b/tests_hugo/nest_course/dist/coffees/coffees.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"coffees.controller.js","sourceRoot":"","sources":["../../src/coffees/coffees.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAWwB;AACxB,uDAAmD;AAG5C,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC7B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAG/D,OAAO,CAAU,eAAe;QAE/B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAGD,OAAO,CAAc,EAAU;QAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAID,MAAM,CAAS,IAAI;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAGD,MAAM,CAAc,EAAU,EAAU,IAAI;QAC3C,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAGD,MAAM,CAAc,EAAU;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;CACD,CAAA;AA1BA;IAAC,IAAA,YAAG,GAAE;IACG,WAAA,IAAA,cAAK,GAAE,CAAA;;;;gDAGf;AAED;IAAC,IAAA,YAAG,EAAC,KAAK,CAAC;IACF,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;gDAEnB;AAED;IAAC,IAAA,aAAI,GAAE;IAEC,WAAA,IAAA,aAAI,GAAE,CAAA;;;;+CAEb;AAED;IAAC,IAAA,cAAK,EAAC,KAAK,CAAC;IACL,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;;;+CAEtC;AAED;IAAC,IAAA,eAAM,EAAC,KAAK,CAAC;IACN,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;+CAElB;AA5BW,iBAAiB;IAD7B,IAAA,mBAAU,EAAC,SAAS,CAAC;qCAEwB,gCAAc;GAD/C,iBAAiB,CA6B7B;AA7BY,8CAAiB"} \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/coffees/coffees.service.d.ts b/tests_hugo/nest_course/dist/coffees/coffees.service.d.ts new file mode 100644 index 00000000..0accb966 --- /dev/null +++ b/tests_hugo/nest_course/dist/coffees/coffees.service.d.ts @@ -0,0 +1,9 @@ +import { Coffee } from './entities/coffee.entity'; +export declare class CoffeesService { + private coffees; + findAll(): Coffee[]; + findOne(id: string): Coffee; + create(createCoffeeDto: any): void; + update(id: string, updateCoffeeDto: any): void; + remove(id: string): void; +} diff --git a/tests_hugo/nest_course/dist/coffees/coffees.service.js b/tests_hugo/nest_course/dist/coffees/coffees.service.js new file mode 100644 index 00000000..9fd255ee --- /dev/null +++ b/tests_hugo/nest_course/dist/coffees/coffees.service.js @@ -0,0 +1,47 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CoffeesService = void 0; +const common_1 = require("@nestjs/common"); +let CoffeesService = class CoffeesService { + constructor() { + this.coffees = [ + { + id: 1, + name: 'arabica', + brand: 'illy', + flavors: ['chocolate', 'vanilla'], + } + ]; + } + findAll() { + return this.coffees; + } + findOne(id) { + return this.coffees.find(item => item.id === +id); + } + create(createCoffeeDto) { + this.coffees.push(createCoffeeDto); + } + update(id, updateCoffeeDto) { + const existingCoffee = this.findOne(id); + if (existingCoffee) { + } + } + remove(id) { + const coffeeIndex = this.coffees.findIndex(item => item.id === +id); + if (coffeeIndex >= 0) { + this.coffees.splice(coffeeIndex, 1); + } + } +}; +CoffeesService = __decorate([ + (0, common_1.Injectable)() +], CoffeesService); +exports.CoffeesService = CoffeesService; +//# sourceMappingURL=coffees.service.js.map \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/coffees/coffees.service.js.map b/tests_hugo/nest_course/dist/coffees/coffees.service.js.map new file mode 100644 index 00000000..9cb15541 --- /dev/null +++ b/tests_hugo/nest_course/dist/coffees/coffees.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"coffees.service.js","sourceRoot":"","sources":["../../src/coffees/coffees.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAIrC,IAAM,cAAc,GAApB,MAAM,cAAc;IAApB;QAEE,YAAO,GAAa;YAC3B;gBACC,EAAE,EAAE,CAAC;gBACL,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;aACjC;SACD,CAAC;IA2BH,CAAC;IAzBA,OAAO;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,eAAoB;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,eAAoB;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,cAAc,EAAE;SAEnB;IACF,CAAC;IAED,MAAM,CAAC,EAAU;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,WAAW,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SACpC;IACF,CAAC;CACD,CAAA;AApCY,cAAc;IAD1B,IAAA,mBAAU,GAAE;GACA,cAAc,CAoC1B;AApCY,wCAAc"} \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/coffees/entities/coffee.entity.d.ts b/tests_hugo/nest_course/dist/coffees/entities/coffee.entity.d.ts new file mode 100644 index 00000000..8aade186 --- /dev/null +++ b/tests_hugo/nest_course/dist/coffees/entities/coffee.entity.d.ts @@ -0,0 +1,6 @@ +export declare class Coffee { + id: number; + name: string; + brand: string; + flavors: string[]; +} diff --git a/tests_hugo/nest_course/dist/coffees/entities/coffee.entity.js b/tests_hugo/nest_course/dist/coffees/entities/coffee.entity.js new file mode 100644 index 00000000..2045965e --- /dev/null +++ b/tests_hugo/nest_course/dist/coffees/entities/coffee.entity.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Coffee = void 0; +class Coffee { +} +exports.Coffee = Coffee; +//# sourceMappingURL=coffee.entity.js.map \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/coffees/entities/coffee.entity.js.map b/tests_hugo/nest_course/dist/coffees/entities/coffee.entity.js.map new file mode 100644 index 00000000..64f19922 --- /dev/null +++ b/tests_hugo/nest_course/dist/coffees/entities/coffee.entity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"coffee.entity.js","sourceRoot":"","sources":["../../../src/coffees/entities/coffee.entity.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;CAKlB;AALD,wBAKC"} \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/main.d.ts b/tests_hugo/nest_course/dist/main.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/tests_hugo/nest_course/dist/main.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/tests_hugo/nest_course/dist/main.js b/tests_hugo/nest_course/dist/main.js new file mode 100644 index 00000000..58cc36a0 --- /dev/null +++ b/tests_hugo/nest_course/dist/main.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const core_1 = require("@nestjs/core"); +const app_module_1 = require("./app.module"); +async function bootstrap() { + const app = await core_1.NestFactory.create(app_module_1.AppModule); + await app.listen(3000); +} +bootstrap(); +//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/main.js.map b/tests_hugo/nest_course/dist/main.js.map new file mode 100644 index 00000000..721361b2 --- /dev/null +++ b/tests_hugo/nest_course/dist/main.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,6CAAyC;AAEzC,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;IAChD,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AACD,SAAS,EAAE,CAAC"} \ No newline at end of file diff --git a/tests_hugo/nest_course/dist/tsconfig.build.tsbuildinfo b/tests_hugo/nest_course/dist/tsconfig.build.tsbuildinfo new file mode 100644 index 00000000..d6c76276 --- /dev/null +++ b/tests_hugo/nest_course/dist/tsconfig.build.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.es2017.full.d.ts","../node_modules/reflect-metadata/index.d.ts","../node_modules/@nestjs/common/cache/cache.constants.d.ts","../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts","../node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.d.ts","../node_modules/@nestjs/common/interfaces/controllers/controller.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts","../node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts","../node_modules/rxjs/dist/types/internal/Subscription.d.ts","../node_modules/rxjs/dist/types/internal/Subscriber.d.ts","../node_modules/rxjs/dist/types/internal/Operator.d.ts","../node_modules/rxjs/dist/types/internal/Observable.d.ts","../node_modules/rxjs/dist/types/internal/types.d.ts","../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../node_modules/rxjs/dist/types/internal/operators/auditTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferCount.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferToggle.d.ts","../node_modules/rxjs/dist/types/internal/operators/bufferWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/catchError.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineLatestAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineLatest.d.ts","../node_modules/rxjs/dist/types/internal/operators/combineLatestWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatMapTo.d.ts","../node_modules/rxjs/dist/types/internal/operators/concatWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../node_modules/rxjs/dist/types/internal/operators/debounceTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/defaultIfEmpty.d.ts","../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../node_modules/rxjs/dist/types/internal/operators/delayWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinctUntilChanged.d.ts","../node_modules/rxjs/dist/types/internal/operators/distinctUntilKeyChanged.d.ts","../node_modules/rxjs/dist/types/internal/operators/elementAt.d.ts","../node_modules/rxjs/dist/types/internal/operators/endWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaustAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../node_modules/rxjs/dist/types/internal/operators/exhaustMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../node_modules/rxjs/dist/types/internal/operators/findIndex.d.ts","../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../node_modules/rxjs/dist/types/internal/Subject.d.ts","../node_modules/rxjs/dist/types/internal/operators/groupBy.d.ts","../node_modules/rxjs/dist/types/internal/operators/ignoreElements.d.ts","../node_modules/rxjs/dist/types/internal/operators/isEmpty.d.ts","../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../node_modules/rxjs/dist/types/internal/operators/mapTo.d.ts","../node_modules/rxjs/dist/types/internal/Notification.d.ts","../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/flatMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeMapTo.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeScan.d.ts","../node_modules/rxjs/dist/types/internal/operators/mergeWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../node_modules/rxjs/dist/types/internal/observable/ConnectableObservable.d.ts","../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../node_modules/rxjs/dist/types/internal/operators/observeOn.d.ts","../node_modules/rxjs/dist/types/internal/operators/onErrorResumeNext.d.ts","../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishBehavior.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishLast.d.ts","../node_modules/rxjs/dist/types/internal/operators/publishReplay.d.ts","../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../node_modules/rxjs/dist/types/internal/operators/raceWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../node_modules/rxjs/dist/types/internal/operators/repeatWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../node_modules/rxjs/dist/types/internal/operators/retryWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/refCount.d.ts","../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../node_modules/rxjs/dist/types/internal/operators/sampleTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../node_modules/rxjs/dist/types/internal/operators/sequenceEqual.d.ts","../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../node_modules/rxjs/dist/types/internal/operators/shareReplay.d.ts","../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../node_modules/rxjs/dist/types/internal/operators/skipLast.d.ts","../node_modules/rxjs/dist/types/internal/operators/skipUntil.d.ts","../node_modules/rxjs/dist/types/internal/operators/skipWhile.d.ts","../node_modules/rxjs/dist/types/internal/operators/startWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/subscribeOn.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchMap.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchMapTo.d.ts","../node_modules/rxjs/dist/types/internal/operators/switchScan.d.ts","../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../node_modules/rxjs/dist/types/internal/operators/takeLast.d.ts","../node_modules/rxjs/dist/types/internal/operators/takeUntil.d.ts","../node_modules/rxjs/dist/types/internal/operators/takeWhile.d.ts","../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../node_modules/rxjs/dist/types/internal/operators/throttleTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/throwIfEmpty.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeInterval.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../node_modules/rxjs/dist/types/internal/operators/timeoutWith.d.ts","../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../node_modules/rxjs/dist/types/internal/operators/toArray.d.ts","../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowCount.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowTime.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowToggle.d.ts","../node_modules/rxjs/dist/types/internal/operators/windowWhen.d.ts","../node_modules/rxjs/dist/types/internal/operators/withLatestFrom.d.ts","../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../node_modules/rxjs/dist/types/internal/operators/zipAll.d.ts","../node_modules/rxjs/dist/types/internal/operators/zipWith.d.ts","../node_modules/rxjs/dist/types/operators/index.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/Action.d.ts","../node_modules/rxjs/dist/types/internal/Scheduler.d.ts","../node_modules/rxjs/dist/types/internal/testing/TestMessage.d.ts","../node_modules/rxjs/dist/types/internal/testing/SubscriptionLog.d.ts","../node_modules/rxjs/dist/types/internal/testing/SubscriptionLoggable.d.ts","../node_modules/rxjs/dist/types/internal/testing/ColdObservable.d.ts","../node_modules/rxjs/dist/types/internal/testing/HotObservable.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AsyncScheduler.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/timerHandle.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AsyncAction.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/VirtualTimeScheduler.d.ts","../node_modules/rxjs/dist/types/internal/testing/TestScheduler.d.ts","../node_modules/rxjs/dist/types/testing/index.d.ts","../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../node_modules/rxjs/dist/types/internal/observable/dom/animationFrames.d.ts","../node_modules/rxjs/dist/types/internal/BehaviorSubject.d.ts","../node_modules/rxjs/dist/types/internal/ReplaySubject.d.ts","../node_modules/rxjs/dist/types/internal/AsyncSubject.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AsapScheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/QueueScheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/AnimationFrameScheduler.d.ts","../node_modules/rxjs/dist/types/internal/scheduler/animationFrame.d.ts","../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../node_modules/rxjs/dist/types/internal/util/isObservable.d.ts","../node_modules/rxjs/dist/types/internal/lastValueFrom.d.ts","../node_modules/rxjs/dist/types/internal/firstValueFrom.d.ts","../node_modules/rxjs/dist/types/internal/util/ArgumentOutOfRangeError.d.ts","../node_modules/rxjs/dist/types/internal/util/EmptyError.d.ts","../node_modules/rxjs/dist/types/internal/util/NotFoundError.d.ts","../node_modules/rxjs/dist/types/internal/util/ObjectUnsubscribedError.d.ts","../node_modules/rxjs/dist/types/internal/util/SequenceError.d.ts","../node_modules/rxjs/dist/types/internal/util/UnsubscriptionError.d.ts","../node_modules/rxjs/dist/types/internal/observable/bindCallback.d.ts","../node_modules/rxjs/dist/types/internal/observable/bindNodeCallback.d.ts","../node_modules/rxjs/dist/types/internal/AnyCatcher.d.ts","../node_modules/rxjs/dist/types/internal/observable/combineLatest.d.ts","../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../node_modules/rxjs/dist/types/internal/observable/forkJoin.d.ts","../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../node_modules/rxjs/dist/types/internal/observable/fromEvent.d.ts","../node_modules/rxjs/dist/types/internal/observable/fromEventPattern.d.ts","../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../node_modules/rxjs/dist/types/internal/observable/onErrorResumeNext.d.ts","../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../node_modules/rxjs/dist/types/internal/observable/throwError.d.ts","../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../node_modules/rxjs/dist/types/internal/config.d.ts","../node_modules/rxjs/dist/types/index.d.ts","../node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.d.ts","../node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/validation-error.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/paramtype.interface.d.ts","../node_modules/@nestjs/common/interfaces/type.interface.d.ts","../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts","../node_modules/@nestjs/common/enums/request-method.enum.d.ts","../node_modules/@nestjs/common/enums/http-status.enum.d.ts","../node_modules/@nestjs/common/enums/shutdown-signal.enum.d.ts","../node_modules/@nestjs/common/enums/version-type.enum.d.ts","../node_modules/@nestjs/common/enums/index.d.ts","../node_modules/@nestjs/common/interfaces/version-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/nest-middleware.interface.d.ts","../node_modules/@nestjs/common/interfaces/middleware/index.d.ts","../node_modules/@nestjs/common/interfaces/global-prefix-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/before-application-shutdown.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-application-bootstrap.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-application-shutdown.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-destroy.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/on-init.interface.d.ts","../node_modules/@nestjs/common/interfaces/hooks/index.d.ts","../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/https-options.interface.d.ts","../node_modules/@nestjs/common/services/logger.service.d.ts","../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/http-server.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/message-event.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/raw-body-request.interface.d.ts","../node_modules/@nestjs/common/interfaces/http/index.d.ts","../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts","../node_modules/@nestjs/common/interfaces/microservices/nest-hybrid-application-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.d.ts","../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/injection-token.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/optional-factory-dependency.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/provider.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/nest-module.interface.d.ts","../node_modules/@nestjs/common/interfaces/modules/index.d.ts","../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts","../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts","../node_modules/@nestjs/common/interfaces/nest-application.interface.d.ts","../node_modules/@nestjs/common/interfaces/nest-microservice.interface.d.ts","../node_modules/@nestjs/common/interfaces/index.d.ts","../node_modules/@nestjs/common/module-utils/constants.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/configurable-module-async-options.interface.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/configurable-module-cls.interface.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/configurable-module-host.interface.d.ts","../node_modules/@nestjs/common/module-utils/interfaces/index.d.ts","../node_modules/@nestjs/common/module-utils/configurable-module.builder.d.ts","../node_modules/@nestjs/common/module-utils/index.d.ts","../node_modules/@nestjs/common/cache/interfaces/cache-manager.interface.d.ts","../node_modules/@nestjs/common/cache/interfaces/cache-module.interface.d.ts","../node_modules/@nestjs/common/cache/cache.module-definition.d.ts","../node_modules/@nestjs/common/cache/cache.module.d.ts","../node_modules/@nestjs/common/decorators/core/bind.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/catch.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/controller.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/dependencies.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/exception-filters.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/inject.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/injectable.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/optional.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/set-metadata.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/use-guards.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/use-pipes.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/apply-decorators.d.ts","../node_modules/@nestjs/common/decorators/core/version.decorator.d.ts","../node_modules/@nestjs/common/decorators/core/index.d.ts","../node_modules/@nestjs/common/decorators/modules/global.decorator.d.ts","../node_modules/@nestjs/common/decorators/modules/module.decorator.d.ts","../node_modules/@nestjs/common/decorators/modules/index.d.ts","../node_modules/@nestjs/common/decorators/http/request-mapping.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/route-params.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/http-code.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/render.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/header.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/redirect.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/sse.decorator.d.ts","../node_modules/@nestjs/common/decorators/http/index.d.ts","../node_modules/@nestjs/common/decorators/index.d.ts","../node_modules/@nestjs/common/cache/decorators/cache-key.decorator.d.ts","../node_modules/@nestjs/common/cache/decorators/cache-ttl.decorator.d.ts","../node_modules/@nestjs/common/cache/decorators/index.d.ts","../node_modules/@nestjs/common/cache/interceptors/cache.interceptor.d.ts","../node_modules/@nestjs/common/cache/interceptors/index.d.ts","../node_modules/@nestjs/common/cache/interfaces/index.d.ts","../node_modules/@nestjs/common/cache/index.d.ts","../node_modules/@nestjs/common/exceptions/http.exception.d.ts","../node_modules/@nestjs/common/exceptions/bad-request.exception.d.ts","../node_modules/@nestjs/common/exceptions/unauthorized.exception.d.ts","../node_modules/@nestjs/common/exceptions/method-not-allowed.exception.d.ts","../node_modules/@nestjs/common/exceptions/not-found.exception.d.ts","../node_modules/@nestjs/common/exceptions/forbidden.exception.d.ts","../node_modules/@nestjs/common/exceptions/not-acceptable.exception.d.ts","../node_modules/@nestjs/common/exceptions/request-timeout.exception.d.ts","../node_modules/@nestjs/common/exceptions/conflict.exception.d.ts","../node_modules/@nestjs/common/exceptions/gone.exception.d.ts","../node_modules/@nestjs/common/exceptions/payload-too-large.exception.d.ts","../node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.d.ts","../node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.d.ts","../node_modules/@nestjs/common/exceptions/internal-server-error.exception.d.ts","../node_modules/@nestjs/common/exceptions/not-implemented.exception.d.ts","../node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.d.ts","../node_modules/@nestjs/common/exceptions/bad-gateway.exception.d.ts","../node_modules/@nestjs/common/exceptions/service-unavailable.exception.d.ts","../node_modules/@nestjs/common/exceptions/gateway-timeout.exception.d.ts","../node_modules/@nestjs/common/exceptions/im-a-teapot.exception.d.ts","../node_modules/@nestjs/common/exceptions/precondition-failed.exception.d.ts","../node_modules/@nestjs/common/exceptions/misdirected.exception.d.ts","../node_modules/@nestjs/common/exceptions/index.d.ts","../node_modules/@nestjs/common/file-stream/streamable-options.interface.d.ts","../node_modules/@nestjs/common/file-stream/streamable-file.d.ts","../node_modules/@nestjs/common/file-stream/index.d.ts","../node_modules/@nestjs/common/pipes/default-value.pipe.d.ts","../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/transformer-package.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/validator-options.interface.d.ts","../node_modules/@nestjs/common/interfaces/external/validator-package.interface.d.ts","../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts","../node_modules/@nestjs/common/pipes/validation.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-array.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-bool.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-int.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-float.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-enum.pipe.d.ts","../node_modules/@nestjs/common/pipes/parse-uuid.pipe.d.ts","../node_modules/@nestjs/common/pipes/file/file-validator.interface.d.ts","../node_modules/@nestjs/common/pipes/file/file-type.validator.d.ts","../node_modules/@nestjs/common/pipes/file/max-file-size.validator.d.ts","../node_modules/@nestjs/common/pipes/file/parse-file-options.interface.d.ts","../node_modules/@nestjs/common/pipes/file/parse-file.pipe.d.ts","../node_modules/@nestjs/common/pipes/file/parse-file-pipe.builder.d.ts","../node_modules/@nestjs/common/pipes/file/index.d.ts","../node_modules/@nestjs/common/pipes/index.d.ts","../node_modules/@nestjs/common/serializer/class-serializer.interfaces.d.ts","../node_modules/@nestjs/common/serializer/class-serializer.interceptor.d.ts","../node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.d.ts","../node_modules/@nestjs/common/serializer/decorators/index.d.ts","../node_modules/@nestjs/common/serializer/index.d.ts","../node_modules/@nestjs/common/services/console-logger.service.d.ts","../node_modules/@nestjs/common/services/index.d.ts","../node_modules/@nestjs/common/utils/forward-ref.util.d.ts","../node_modules/@nestjs/common/utils/index.d.ts","../node_modules/@nestjs/common/index.d.ts","../src/app.service.ts","../src/app.controller.ts","../src/coffees/entities/coffee.entity.ts","../src/coffees/coffees.service.ts","../src/coffees/coffees.controller.ts","../src/app.module.ts","../node_modules/@nestjs/core/adapters/http-adapter.d.ts","../node_modules/@nestjs/core/adapters/index.d.ts","../node_modules/@nestjs/core/injector/module-token-factory.d.ts","../node_modules/@nestjs/core/injector/compiler.d.ts","../node_modules/@nestjs/core/injector/modules-container.d.ts","../node_modules/@nestjs/core/injector/container.d.ts","../node_modules/@nestjs/core/injector/injector.d.ts","../node_modules/@nestjs/core/injector/instance-links-host.d.ts","../node_modules/@nestjs/core/injector/abstract-instance-resolver.d.ts","../node_modules/@nestjs/core/injector/module-ref.d.ts","../node_modules/@nestjs/core/injector/module.d.ts","../node_modules/@nestjs/core/injector/instance-wrapper.d.ts","../node_modules/@nestjs/core/router/interfaces/exclude-route-metadata.interface.d.ts","../node_modules/@nestjs/core/application-config.d.ts","../node_modules/@nestjs/core/constants.d.ts","../node_modules/@nestjs/core/discovery/discovery-module.d.ts","../node_modules/@nestjs/core/discovery/discovery-service.d.ts","../node_modules/@nestjs/core/discovery/index.d.ts","../node_modules/@nestjs/core/helpers/http-adapter-host.d.ts","../node_modules/@nestjs/core/exceptions/base-exception-filter.d.ts","../node_modules/@nestjs/core/exceptions/index.d.ts","../node_modules/@nestjs/core/helpers/context-id-factory.d.ts","../node_modules/@nestjs/core/helpers/index.d.ts","../node_modules/@nestjs/core/injector/inquirer/inquirer-constants.d.ts","../node_modules/@nestjs/core/injector/inquirer/index.d.ts","../node_modules/@nestjs/core/metadata-scanner.d.ts","../node_modules/@nestjs/core/scanner.d.ts","../node_modules/@nestjs/core/injector/instance-loader.d.ts","../node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader-options.interface.d.ts","../node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader.d.ts","../node_modules/@nestjs/core/injector/index.d.ts","../node_modules/@nestjs/core/middleware/routes-mapper.d.ts","../node_modules/@nestjs/core/middleware/builder.d.ts","../node_modules/@nestjs/core/middleware/index.d.ts","../node_modules/@nestjs/core/nest-application-context.d.ts","../node_modules/@nestjs/core/nest-application.d.ts","../node_modules/@nestjs/common/interfaces/microservices/nest-microservice-options.interface.d.ts","../node_modules/@nestjs/core/nest-factory.d.ts","../node_modules/@nestjs/core/repl/repl.d.ts","../node_modules/@nestjs/core/repl/index.d.ts","../node_modules/@nestjs/core/router/interfaces/routes.interface.d.ts","../node_modules/@nestjs/core/router/interfaces/index.d.ts","../node_modules/@nestjs/core/router/request/request-constants.d.ts","../node_modules/@nestjs/core/router/request/index.d.ts","../node_modules/@nestjs/core/router/router-module.d.ts","../node_modules/@nestjs/core/router/index.d.ts","../node_modules/@nestjs/core/services/reflector.service.d.ts","../node_modules/@nestjs/core/services/index.d.ts","../node_modules/@nestjs/core/index.d.ts","../src/main.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/@types/connect/index.d.ts","../node_modules/@types/body-parser/index.d.ts","../node_modules/@types/cookiejar/index.d.ts","../node_modules/@types/eslint/helpers.d.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/eslint/index.d.ts","../node_modules/@types/eslint-scope/index.d.ts","../node_modules/@types/range-parser/index.d.ts","../node_modules/@types/qs/index.d.ts","../node_modules/@types/express-serve-static-core/index.d.ts","../node_modules/@types/mime/Mime.d.ts","../node_modules/@types/mime/index.d.ts","../node_modules/@types/serve-static/index.d.ts","../node_modules/@types/express/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/@jest/expect-utils/build/index.d.ts","../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../node_modules/@sinclair/typebox/typebox.d.ts","../node_modules/@jest/schemas/build/index.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/expect/build/index.d.ts","../node_modules/@types/jest/index.d.ts","../node_modules/@types/parse-json/index.d.ts","../node_modules/@types/prettier/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/buffer/index.d.ts","../node_modules/@types/superagent/index.d.ts","../node_modules/@types/supertest/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"d2f31f19e1ba6ed59be9259d660a239d9a3fcbbc8e038c6b2009bde34b175fed",{"version":"8d6d51a5118d000ed3bfe6e1dd1335bebfff3fef23cd2af2f84a24d30f90cc90","affectsGlobalScope":true},"3284e33a45d6aa8324691ac5737d08695e35e99b5f69fdc9ef21b3c7e7fd8449","e89535c3ec439608bcd0f68af555d0e5ddf121c54abe69343549718bd7506b9c","622a984b60c294ffb2f9152cf1d4d12e91d2b733d820eec949cf54d63a3c1025","1a25c4d02a013b4690efa24ab48184a2c10b1906a379565ba558b2c3ba679a6d","ba6f9c5491bcf018dbbc813e1dd488beb26f876b825007ba76db485df341a8ee","75b57b109d774acca1e151df21cf5cb54c7a1df33a273f0457b9aee4ebd36fb9","fa3d0cd03fa17459d9ddd98b120b4bb084da39f0391cbdce480a6ef74be0cc7a","e3fd84e6470b7e0679c4073ee5ce971d324182486dde5a49b67cae29168b51d2","dd8331d0a5190a4735ce6c152e420230188c4966067a756673c36dd7ba72b10e","cfdf36cfc0721c29f58651fc12f0f5a349d29da3a63180afc5b3d77b95653f82",{"version":"d57e7ff5243e0dcd04cf2edf9ad9520af40edd6eba31c14c3f405f0c437fa379","affectsGlobalScope":true},"0f882d4ae58f431454030289154feb0132e1b00ca5c3197c6b749bd098aed73a","7ff7f4632a6e7b6872fb1843f3c0df495b49840eae2a23c6fbc943f863da8c29","d267771149e172ade39e3ef96b4063209d5a7e8291702fe03983aa52f2b3d5f6","a78590b0efcef281236e3234520c348d63be1d4561b63b20e6c3b6fc18b37dfb","4d59c6a10b6c79a0927c79efa89b3c9f71d174ec14ec2792076cfd2330d0cf8e","a496f51933422872de22729b7a0233589325a1a1707cccd05cd914098944a202","75b6663bc569724017997481b6b3774065c204b316cb4f5ad7df3b5162d2dce1","06a38095ad4368314366bc08f7cbc0fe274ef7321ec611005d0bdd9c6565e4d5","4599793db9aed9b84677f0ca1cf7ef3c69bb91cda4fe4329cbab778ca4d80a58","ad0028f96921778931fb8419d8de33b10908314fa99699de1702020f69235da1","ccd2a35321c0786bd3808042dc43b960cac13f2cc660ac37a0087e12bc97d2fc","df524ed01de4f19efb44bded628dbba9f840148be4b6cfe096e29d4b01589de3","2e3981b9cee48174ff85ae15019fd72933f7023a4ed05094740f7e6f7775623c","836ebdc3b9e4c006acc4f405b7e558e56d47830e05c40d991b1e27fe8bc91157","2cc6b617c6120ba64b5778ccd4b74c951adc3a3941bb6b39f47d48701c44af39","eca02b99615a8f1652e21399d832618e38bf166c0747c9247349bc901a2f7741","7f7d6d42e5780e86f5b860a6f95179fae06a368b3af28c1c4230397c47021a59","4740a7d11ab3b381be0f269f1903fb3ff226a2fba55a01756b2997e67cd853f2","863dbc4e77f0353e6f9d6bc0e2b4622d5c07ff6f099ff66cafd7924b2ff4dd3f","bf034a18ed7e2a058f9e48c4c2480a124138fbd3586a80c77736a9ec079d12a8","f88758992a0bf13d095520aacd4381fb456ff121fb9aa184e6eb0eecb26cfadc","c249e9ae33bfcad97deec3c73c9ed2656e112fbdf22deace0b39724be6a5dcf0","d8b45924965c0c4fc0b946c0b6d597aa8d5de9cdf5c727e3d39422d17efec438","d07ea953cfea0c4bd11641912846bd955f4fd26ad2b7b8a279d69c7ab9cb3add","feddabf6ab0eb191e721f0126f3db8688db97c77a1234968bde7a2d70c4ae513","dbbda62ea5f4d1f8b40cc2b7e2e2fae424abbb4715a04a3659cb8b317f7b228b","cde0568b836865a24f4ee5859462004a326dfb76d514e6f56c8e78feedebed58","7f5cb3a03588ed46d52a6c2138315d930cd6ffb5c2134247cd07bc23cbea0b5a","7797f4c91491dcb0f21fa318fd8a1014990d5a72f8a32de2af06eb4d4476a3b5","f39fb20b83c3f9853c13d4ac95533760979d3023c0a5affe2c0a62d91ab3afd8","e4fca08aed8afb32bb8643d7469810bc8681115fe398e56a028df9e73b2d867f","2622639d24718ddfccc33a9a6daf5a2dd94d540ca41e3da00fe365d2c3f25db3","078966067552650f44ca96c68eddbb8539f30ee48a9ab3f24abdcf0a4037b535","2cd6250c43dba360377481c98d48db6ab1532a7527339edb0deffddc28ba66b1","7a9d600990fbe263a23daebed9ba1bbc5761e45679a7e2b2774a42756ef077a2","66bc155515fbea8c31a4efccbbac44de7c037b01f3aa00b76312cf7252725d30","5703288ddbfc4f7845cdbf80c6af17c8cde2a228757479796c2378b1662fcd48","0dfd353f0c16dd5107a7e0713dc52d0a2538293b0a0eac6000a017f9c0a60b56","9cd683a4663ef4d9c6486f1b8a34c73bdbc344d69490931bfe2fbcada12ab35b","42f6a409bad5259ece69df25d2b8ace2ff2ade45fe6386ee45203bdd9329f971","d3b1a8b87a5e77d70056325e137a0e04d984b991546fdd3c1034ff4102d603c4","2eb162efd6dba5972b9f8f85141d900d09da4fba23864f287f98f9890a05e95f","3f878fb5be9ebe8bd0ac5c22515d42b8b72d3745ef7617e73e9b2548ccbdf54b","e9ed562b7599c8c8c01595891480a30f9945a93a46456d22ee67ebf346b7538a","e7bf975a98cecefe2e8902fb7da9314675ecdce553aea722aaec97327668e18b","3d36f93648518338c875d9f77a8eab52905365483dbb3afe43ed68f1b712b67c","4fa54df9184d291bd78b36f5063372042cd995460e906cb14014e40d1442a326","b4e32bd5e3b493e4ea6b5ec69a4c02aa1fdaa78e1df9a863bb07604de8f9d123","f6bd1aa152ca2b5064e06282ee3137842ae6825b6b09aa89a2ff063b976a56f3","bce2390bb3a76f8bf2ba4397c66db5277bf3e698ee614347e5eb79d7fc0942c6","fbdc8d7cc7daf4101bf567512c67fb990d8fe300e0ba7f213171192177f44aa0","298e0da6d858e39fc0c1eebfa4f5c8af487868c6f2e98c3ef800537d402fb5c3","3b6457fb3866562d279377f923cf3758c80ed7bfcc19414b72a24d0a98188e0c","4fb5d7efb3520b92c1b767ce18968057c5e70886d7fb3416c487231df9275af9","df2303a61eb57b2717d17123e82bc0f3fd60f6e4673cb5506192dfe23c9480bf","b104960f4c5f807535ab43282356b2fe29c5d14a02035c623ac2012be3d5f76c","a35ca245eb852b70b20300546443abb1fcbac6e5066e4baaa092af4ea614d9b5","55da140feab55f10a538a9879a97c4be3df4934cbd679665c91a7263a86095e1","1a39e51e3362aec7d4edec9b317ff83916fe0471f86ddf2d3ef3af5952e87d9e","4b3f36b96f129a8e125c91d41a05f711e73b3285f80bceb3a1aecb13c97c4502","852779920fc4220bc42ec6d3c9b6164e23ea9371a788531b48b4005fe0cb4392","9a82e1b959524c1abfeeb024ee1a400234130a341f2b90a313ce4e37833b7dd2","515b97cede17d91c9669cc1c7fb7a8a5f0a5f2d8999f925a5f70b4ebea93723e","08e8e57241f874bdbf69ab2b65cb0ee18b4183d5c9452937da49b934fc679c4b","944af466f063d4bd090ab9d988c620b90a014e919d5f78963f6074a136ea225e","644addd4811636da491c9546654bc005ba8599f23df6d731d91eba86f3137fc2","a9249493114b181814728cbfeb7234738193a4169b654ec4705d48d7a4d25222","aad6f20d6eb01192ae02294361faa6e1f320d72447b56f433db853bbe80b15ca","876fbedec2f494eb6f834ce8636b07d581c657d205d81a3ba894eff0facc6b84","58527aa45f11c9b259a6a9d78b397f35020bfbb104f4d3bb177039b5c18146bd","91b8b61d45b5d22f3458a4ac82e03b464a0926bab795a920fe0eca805ec476eb","2744532f8fb960eb78497ac660db719f503a10c801f87131d26fd9cbef75dcef","6884287c54891ac19cfbe056f3ed29cab1732a00dec69bd3b140ce62c11783c6","abc3487041159734b8611d9d6fd85de6892f11ebe8c2583baedfc1f87c53757c","cb46657d3237f80742d5701ebcced8f6e5cf8938442354387d6c77d7048dfae6","76281a3b799bbd17ec8e6de7d2fa45ccf749049fd53f00857daf0dbc449616b8","661f322e45545a554e4ffc38db6c4068a66e1323baf66acb0d8a9fa28195a669","91d70dce48c2a2bb55f0b851cf1bdba4202f107f1e8fdf45f94ff6be4b8e8f99","ce978e20a6f26f606b535f0d6deb384ae6a73f8d0bd0dfca0925f5317cad1f25","f2d3567210ca4d559d8297d6c4402599c93e3bc7485054192d38db5e132fbc0a","887d8058aeeade45984fdb8696147078bc630d3fea15ab2b7baacde0fe281fb7","ad27aa59d346179ac449bd3077d245f213152879e4027356306ccf1722d61d51","ea546a7ed9eaa71ba78d4d392509dadea4bafed283269dd6c4b09e7d8824e986","4ec0f2a141a9ae7d3557b8efe630ac2021bc3a9ac61238b59293f4cf2f196e82","b2db743c71652e03c52d51445af58d0af3316231faa92b66018b29c7ba975f6c","0863a5876c85fbaffbb8ec8aeda8b5042deb6932616139706d2b82cde9d3f7c7","1294b8ecdd212362323f349dd83b5c94ea77bfee4dad24fc290980a3c8af6ce3","ba9c46725e2a0bd9df59d3a1e801cc60f90db3ef7817131c53945dce2b8c0c56","281d373eeabf80c4851f8de991e6abe4d385c30379d80897bbc3df3dcac99cee","624c5dce95672d9dcca40d9d9d82ef855f5f902292f43aa265cc8fd963c6ce84","8a48d9c6184992d1c3ed5daa55f83d708c37582916926a5555a900608f804b60","605dd288c636cf9b5317fe76dec75d3c7fb855fdcd3ee8cb4fea7d7091ca6fb4","95addea67857d4e568a02e429b15458cec203876b2ea5f5ea18ccfeeb91b8ce0","b5a615b0ad865ffa562980a10bda162ac1744fd363b4edc2cfc664222071cbcf","bbccd721363897950a55ce09529503f25a69522e5c91a22679b66e941e5f8654","d3a1e70795c38d7851b6e4f3b441c5ffdae171d6e2576a2204b7d79059aeea66","d7b8d41887c5fccfe19802c4336d34348b752abf0d98839575699d71deff60be","063fe3004728b8516a4d799ee16f9a71801ba24e0443dd98638cef1bd4353a7c","b8a0236f47d9037efdaf93da602415ae425dababe097fc92f83fd47ce9aaa69f","fab7912fc3ff45fce2f5d5febc9494c4d0a85d6c63fff68f21e4669c32eaacb9","f6c3fcb9d75d8aea778236fd9327ceb935b41865dbf3beac698be77e0ae9018d","b20bc124abd8ee572d0d756713ff987b116cdae908a6fcbc40e80d4b999f56b4","a599f3f450ad62c3fdc0c3fd25cddcc9332ffb44327087947d48914a8da81364","645dff895168aa82350c9aa60aa0b3621b84289fef043be842f45a9c6c0ac6e2","f068ff5b7fb3bdc5380e0c677e21de829bd25cdac63a9b083fdc220fcb225280","09d2fdca6ea6c135897a26976ad3c0db724adaf23ef4e38ad852b1d8efef1ae6","15de5b7739bf7e40213a200853bf78455ee5958af08eda786605a54a7f25ade6","f3acb439e08f0c2c78c712a876dc6c2080302c46916f1d63b7dbe509616ce9ae","37862e711637ebd927907a82cbf0143ea30e95eb165df554926c43936b1d77a9","89e253db2c2cc9a510c521f14dd2b1aae4de2556ee5159ad8d118d3587e3a880","3d0a172cee184a0f4111a7bd7fbb8729af3f54b30c06a2677d85c20ea9c811ab","d6a07e5e8dee6dc63c7ecd9c21756babf097e1537fbc91ddfec17328a063f65d","6fdc88b1287c276b55b7f7c4c7b49587813c763eea9751ce0baf0a7e61cd5d89","6a02443704052768bd021f24783aa104b02ae4444e9b735317bf13c6b857a11e","37987b0fe9800cf25473c882ce07bccdab2763c5681c1a2d16816aead46aa8d1","c84c03c721154068e1a60d83e9e85819bd3ef70b824ac2edc498aa31c06e5781","c23a403716784b53cf6ce9ffff9dcdb959b7cacdf115294a3377d96b6df1e161","c96fb6a0c1e879f95634ab0ff439cbb6fff6227b26bbf0153bef9ed0aabba60d","db936079fe6396aad9bf7ad0479ffc9220cec808a26a745baebb5f9e2ef9dbc7","06bc0b9cc7bf0b92534f1517fe5adde1f23f60cc6cc5c59f8e1c65db48a40067","919a753b0cbb12ccc606c62e2d34884d75a48ba19b1dda497c72621b11dac088","2c27e33ee0bf722988da00abd582cc9b806ce3fd9153a864800a339ad13f3fcf","92d7b3a5aa5dc872e54cbad2a7094b3ea4f72c7901de1d07b4c334ff658297f0","7a52922b38e9686d5bdc6e75774929eec6688d26c1dfe4a03ddec77ede468e87","aa5efca2833d89b55248f1889a6433dab1b1f41768e9a75f8ce35f9bf56c5ec4","4911d4c3a7f7c11bad0e2cec329a19a385d10ea83b0b69c76e032359e388f624","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"4f6463a60e5754bbc4a864b2aaf8fecb7706b96a21b88f27b534589b801978b6","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"4ffef5c4698e94e49dcf150e3270bad2b24a2aeab48b24acbe7c1366edff377d","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","67a12e6c992d3f770078bacc562f767cf6142ae4453759a482f8f5ed30a99027","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","c993aac3b6d4a4620ef9651497069eb84806a131420e4f158ea9396fb8eb9b8c","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","06ccebc2c2db57d6bdbca63b71c4ae5e6ddc42d972fd8f122d4c1a28aa111b25",{"version":"81e8508d1e82278f5d3fee936f267e00c308af36219bfcee2631f9513c9c4017","affectsGlobalScope":true},"413a4be7f94f631235bbc83dad36c4d15e5a2ff02bca1efdbd03636d6454631b","20c468256fd68d3ef1fa53526e76d51d6aa91711e84d72c0343589b99238287e","4198acced75d48a039c078734c4efca7788ff8c78609c270a2b63ec20e3e1676","8d4c16a26d59e3ce49741a7d4a6e8206b884e226cf308667c7778a0b2c0fee7f","ee3bad055a79f188626b1a7046f04ab151fdd3581e55c51d32face175bd9d06f","d61c7c41eb1960b1285e242fd102c162b65c0522985b839fadda59874308a170",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"1805e0e4d1ed00f6361db25dff6887c7fa9b5b39f32599a34e8551da7daaa9c2","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","fb0989383c6109f20281b3d31265293daefdd76d0d30551782c1654e93704f48","a4210a84a82b3e7a8cec5b2f3616e46d523f4f10cc1576d8f2fb89d0987b341e",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","22d48bfb37261136423ac687f1fa7bd4dda3083f767416d409a8260cf92bc8fc","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","95518ff86843e226b62a800f679f6968ad8dac8ccbe30fbfe63de3afb13761a2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","698ab660b477b9c2cd5ccbd99e7e7df8b4a6134c1f5711fa615ed7aab51cb7f7","33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637","a4471d2bdba495b2a6a30b8765d5e0282fa7009d88345a9528f73c37869d3b93",{"version":"aee7013623e7632fba449d4df1da92925b27d9b816cb05546044dbfe54c88ef4","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","c9d70d3d7191a66a81cb554557f8ed1cf736ea8397c44a864fe52689de18865a","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"1aad825534c73852a1f3275e527d729a2c0640f539198fdfdfeb83b839851910","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"88003d9ab15507806f41b120be6d407c1afe566c2f6689ebe3a034dd5ec0c8dc","3da085d344bf625767c5b1fcada31a5d94ebefc4e36bf18a676ca37460bc4e4e","006855ddea8674d084173a768f88519dc154be94eba5e2120262a33709832b9b","17dd843a266f99ca4b3a1257538bd1cc69dc5c7f2f23c3891f0430615b8c9c1c","5430364886c721a30475253356162b6c27871718094cb3e69e2bcea71a17e533","1218398da7c8dc4add10bdb3aa2856aad54b123d847eaf574d1d694ac269bfb5","189014f3213ee7457dbeea04dca10ca5d9ed2062cd39641aca5f3b4c75de9d99","b637cd92688a6cdf4f8f184ff529dc2bc7f15692828e2c0c66a60e6972f400c7","7061e83d6792897077bcac039fccf7325234004769f591c63a8cf8478bf551bb","7ab905865063322f2bba361d0f2ef93520f64a382bac13b127479860ad99f62e","277a358d61376fce7ac3392402909c96cf6a0a613146549fc0165ccff953e012","50614c808e099a1d4413786f3783d9eeaaa74b267f2c87fcf8a893287e91c301","f4cb6530f248e87cefa74ef623206fec805f6252f885f8e14ef3d1a5872cef2d","38c332caadd8391566552395d592076470a5e7423f70964620eabf05c02907cd","eb17b5bf1fc763a644c21d76572c0e41e351c3f6dfcde649428d5d829f7294d2","cb124162c87b29ff5121e3ee5bb29c782f101e0135d6c2644ab1b31d530a435e","406d6f5d3707c488362fb40d1c1f8a7b0a42b70554b427160185d93e430228f5","2e9776410c5bc290d9432a9215c67398a273e514a79b9e15f32ecddfde8a03be","313ff8df074b81d3e4f088ff3a3a06df3d9b0d0c7f55469ccc2ac887ecb6b867","c718475bca06806cc243e77777641cb67ba68f2c57321a4773ebb47760a3bcf2","96e6bf811343caab5112b68880905c5d20d9257054afac6c18e718a4c549ed27","a2793bc73ba63ca7d259cb0f0b61d0023820170d08a1f9715006c8042d060165","d5011b38165771fdf75a9a06d6d379a1fc7edd7eb695ebdc52319fb6e3c6d81f","88417fb19d339304e9616a38ea513251047c9e300c81f9467fc317df8a582e71","3e8e2d132f726dddbda57819f5391504e585cb3beab6b32203064e7e40618583","6e23627cd3f10418b5b2db102fdcf557b75f2837f266d88afac6b18f333bb1bc","866046dcea88f23d766a65487ee7870c4cf8285a4c75407c80a5c26ed250ef8d","019f4f1cbc781cc15c6173f8be5ef907405722194ab297127b3c3426e5368339","41f4413eac08210dfc1b1cdb5891ad08b05c79f5038bdf8c06e4aedaa85b943d","c79f1c8b51d8475dde8d2973f740f43ca34b1f0a95d93649cd76c1ee20abba19","35f0d2bd2c5c05c0cb19095bf5b7c44365b1c88efe6285370855b90417277a64","8264b129f4c4eb4799703f8e5ee2223a184d1cdbfc782158b1f40a88a4435a1f","527ddda6f8be1279f3294714534c49d6e90f238cea325519882ebf88d7ec5bd2","b23877792e8bd00271d0ec5d401b68e4228540a4316de3d9dfb697b955c161a4","35b2eb1de01633db90d41abe93730b29984856fcc840b4c2801bfd3761a2097b","95f0c9127b879c2fc7e31f8e09ff45bb4aae302e60f4b9ceaf4d9ee6bc51ec66","2a6b4655a6edce9e07c7d826848f72533c9991d40bc36e3f85558ad20e87ce2d","6e3d29fdc96ebbb2ac672d2dae710c689c1ea0d0e9469e0847616f3c38fd085f","d505055b8fadd42da235c85947911d8d198ad70c5f5775991e7821d4f89c90f5","8b5a5852099dca7d7e7a7cef6d681dc1586aafacdb963ca180fe5cabbfa3a24b","0d1aa3341d1ad2064adada71c5d01a2f572e4aac09410e5616d90894105a0eb9","52494ca5a884da3bf11b8165ab31429715f0970d9c6383240c5666f4bd713e01","162fafa2291749df2ab4516854aa781fcee1d9fca2ecd85fb48ae794c0700ce2","b4b9b51ee6f6309cda2e539245235a8caeca2b1d6bf12b5e5c162d17333c450f","d2ffe8356f060b88c1c5cf1fa874a4b779fb87fd1977084876e8be9eab6bf485","c76053984b39150d00ade365b096a8bc21a4a7f2ee9e0a926711b00f8e7bf701","956b510767e3d6f362ea5800510635197723737af5d19ae07ee987ea4a90bfa5","cd1a8ff61f5063d7e6e2094e25d35c90b499961b63911f2f4ae0ff5555c2b4d7","1cf09b5945779e9bc75c4dcd805fb149c28fc90da3335186ef620647a3c540e1","9cdc0b9a313090ec45b34ea1eb02fbace433f509e753634b043e9b83038261e6","c93474cff0088351a65d3cad24037874a26a5371a48528563e56efe31cb3d8bb","b4580df8ea7f62d7b06588001952bf69426e6b03cf3d2569f5f608e45f29ba08","de27f7bb9be9d8a2b4557ec6503b8a315f74d598ce9a0ab81b5ed5610e1a8e81","fe3c378dcefa7ed8b21bd6822f5d7838b1119836da75ae1e1fb485d27b8ffb62","7365bf3333d4277b6fe374ed055624e5ec080dbb919e2d78f1cb75a3f1a4b4f6","a5fbf3bc5c16ab5c84465ba7a043a4bee4c2b20bd3633d50d80118a3844edbaf","0923e4ac8c894ad507bd2daee0df66b699de88467201381ece011ba5a080e1ff","e4f6626f827ea509255647e1b6db82145a2eb1a6b46202655e7d9bb19145c33b","26e23972c40f378f0301d8d7025ea895557c2865a1a31c8ea9c3fff0dbc27075","bfddbff94132b423ad1d71bdbefb1d388c21a74ac1a8742df9324e5bf6109058","795a08ae4e193f345073b49f68826ab6a9b280400b440906e4ec5c237ae777e6","8153df63cf65122809db17128e5918f59d6bb43a371b5218f4430c4585f64085","a8150bc382dd12ce58e00764d2366e1d59a590288ee3123af8a4a2cb4ef7f9df","5adfaf2f9f33957264ad199a186456a4676b2724ed700fc313ff945d03372169","d5c41a741cd408c34cb91f84468f70e9bda3dfeabf33251a61039b3cdb8b22d8","6e87c0c1cf06fe7dd6e545d72edefd61d86b4f13d2f9d34140e8168af94a7b7d","cbaf4a4aa8a8c02aa681c5870d5c69127974de29b7e01df570edec391a417959","b8d9df5c49858df86ffa6c497f1840528963c14ca0dea7684e813b008fe797b3","340a45cd77b41d8a6deda248167fa23d3dc67ec798d411bd282f7b3d555b1695","b1f8c85b27619ccfae9064e433b3b32a11d93d54de5a1afdaeca23c8b30e38a5","0ed6417b905cddb85f98281cb3b5b137d393955521993d9ce069d5e2d6b26ee8","f9ceab53f0d273ccaa68ef125974305dc26fe856af9a5be401ca72d0f78659d4","99d99a765426accf8133737843fb024a154dc6545fc0ffbba968a7c0b848959d","c782c5fd5fa5491c827ecade05c3af3351201dd1c7e77e06711c8029b7a9ee4d","883d2104e448bb351c49dd9689a7e8117b480b614b2622732655cef03021bf6d","8a10bdd9317aa91b37ee4b6dbd40529d0cd16353f04cf7c27b29c5604a28e8c3","09a7e04beb0547c43270b327c067c85a4e2154372417390731dfe092c4350998","eee530aaa93e9ec362e3941ee8355e2d073c7b21d88c2af4713e3d701dab8fef","ebf6ea6f412af15674333149f7f6561c0de9e36a4d4b350daccf6c5acbbf9fa3","1d6cc6dc76a777be3856c8892addb58d60b8957730951f9ab8b721e4f7fdf7e9","7a0e4cd92545ad03910fd019ae9838718643bd4dde39881c745f236914901dfa","c99ebd20316217e349004ee1a0bc74d32d041fb6864093f10f31984c737b8cad","6f622e7f054f5ab86258362ac0a64a2d6a27f1e88732d6f5f052f422e08a70e7","d62d2ef93ceeb41cf9dfab25989a1e5f9ca5160741aac7f1453c69a6c14c69be","1491e80d72873fc586605283f2d9056ee59b166333a769e64378240df130d1c9","c32c073d389cfaa3b3e562423e16c2e6d26b8edebbb7d73ccffff4aa66f2171d","eca72bf229eecadb63e758613c62fab13815879053539a22477d83a48a21cd73","633db46fd1765736409a4767bfc670861468dde60dbb9a501fba4c1b72f8644d","1f9cc8013b709369d82a9f19813cd09cd478481553a0e8262b3b7f28ab52b0b2","a314a39426700ba2b5a76c01bab321bbe79cfef898dae996e930b017fc2b0af9","7f2c10fc5de794bf7ddad2ff13b46e2b7f89ced296c1c372c5fdb94fc759d20d","6ea6e80bf94a93e4841d57878bba521822ca5e2ec7cbb626196a8efc2766eb79","8776e64e6165838ac152fa949456732755b0976d1867ae5534ce248f0ccd7f41","fdaf3475e11582e137bd84fa19f6bdbf23623f79cecc48a4037e8fa5756ba340","5c4c5b49bbb01828402bb04af1d71673b18852c11b7e95bfd5cf4c3d80d352c8","6b8861483f8d90261908256836f1b8951d1f4ac9a2a965e920fb18603c8d1d0a","72afd0094250e7f765576466170a299d0959a4799dbf28eb56ba70ca4772a8b4","44ec212fbf43580505de3d6054376ced252c534ced872c53698047387213efb9","4880c2a2caa941aff7f91f51948ebfb10f15283ff0b163f8ea2a74499add61aa","19c3760af3cbc9da99d5b7763b9e33aaf8d018bc2ed843287b7ff4343adf4634","9d1e38aeb76084848d2fcd39b458ec88246de028c0f3f448b304b15d764b23d2","b1048a866abac5d678376310d28fd258fd4d663942ac915a5fa90e585cf598f8","c9c6eed8faed23fc697b79d421ac443594a3458ae2a60150083ee1e860171971","9cc2a5c3e3c4be782a2300d356b94286764166acf2a6eedc83c6f7a53c0397f7","9ddf8e9069327faa75d20135cab675779844f66590249769c3d35dd2a38c2ba9","d7c30f0abfe9e197e376b016086cf66b2ffb84015139963f37301ed0da9d3d0d","ff75bba0148f07775bcb54bf4823421ed4ebdb751b3bf79cc003bd22e49d7d73","69196fa55fab9cd52c4eecba6051902bd5adff63ecf65e0546cb484b5a279fb1","35a9867207c488061fb4f6fe4715802fbc164b4400018d2fa0149ad02db9a61c","91bf47a209ad0eae090023c3ebc1165a491cf9758799368ffcbee8dbe7448f33","b75aa590b103f8491e1c943f9bc4989df55323d7e68fba393d3de11f4aae6bb8","4894a2c13e65af4fea49a2013e9123fe767a26ae51adb156e1a48dffba1e82f7","fc2a131847515b3dff2f0e835633d9a00a9d03ed59e690e27eec85b7b0522f92","90433c678bc26751eb7a5d54a2bb0a14be6f5717f69abb5f7a04afc75dce15a4","55ae9554811525f24818e19bdc8779fa99df434be7c03e5fc47fa441315f0226","7210df9e28cc71105d8938508a8bf99e7bf7df1f18548d774d7c2accbfb3332e","b842238362d1d1879242576ea63d436daa335613559ef0aff586825638d2d47a","e7bde95a05a0564ee1450bc9a53797b0ac7944bf24d87d6f645baca3aa60df48","62e68ce120914431a7d34232d3eca643a7ddd67584387936a5202ae1c4dd9a1b","e6b74c07c5a4e65b27f5a419467e021f61d45255d625bacffe502bd226ffc41d","e1cb8168c7e0bd4857a66558fe7fe6c66d08432a0a943c51bacdac83773d5745","70e929fee0f98d969cd4247583b4f70fe912787be58e21f6e9123b4afdaeb8f7","cd0eeda77ab149135d817ac1e1cd1e88f73bf37fe5a652b5c14e124e676201cf","cbc15ecf15b73c132087c185178ba51b7a786ff4a51b6f52a50b01aeb3d48353","8ca60a0840c741e66d4421defe62d44226167a4750fcfa080f760a8f9487fd1d","6d8dedbec739bc79642c1e96e9bfc0b83b25b104a0486aebf016fc7b85b39f48","cd0565ace87a2d7802bf4c20ea23a997c54e598b9eb89f9c75e69478c1f7a0b4","c18f4f72a68275b7602e5968b862cb9b7b76ea4a1ac1b3e622f99e0b672569e8","0fdb1ed509382bd388896d3770655b0cda8c80c36f8c54b3899992f7a3a8665c","d97b96b6ecd4ee03f9f1170722c825ef778430a6a0d7aab03b8929012bf773cd","f55fc3e536ab193aaabb9b6ded5f93181f81294ee65fe3199c9f4415f0f1e53c","ec8053ec564993a885ba2e2c31408369270a190a332a29fac7a825bb7e60b37c","542ecc66e4fcc33f46695ae22b1d14c075054a78c019915d556636be642465af","476b5c25e85b94e15d761bb9503f55fb11e81167df451f187f5080fca825273b","72636f59b635c378dc9ea5246b9b3517b1214e340e468e54cb80126353053b2e","ebb79f267a3bf2de5f8edc1995c5d31777b539935fab8b7d863e8efb06c8e9ea","ada033e6a4c7f4e147e6d76bb881069dc66750619f8cc2472d65beeec1100145","52ff5e1ea35c54428b46c75fd14f87b7a7158a8f4a1ecfc4a9b996a03185c738","605d29d619180fbec287d1701e8b1f51f2d16747ec308d20aba3e9a0dac43a0f","67c19848b442d77c767414084fc571ce118b08301c4ddff904889d318f3a3363","c704ff0e0cb86d1b791767a88af21dadfee259180720a14c12baee668d0eb8fb","195c50e15d5b3ea034e01fbdca6f8ad4b35ad47463805bb0360bdffd6fce3009","da665f00b6877ae4adb39cd548257f487a76e3d99e006a702a4f38b4b39431cb","0d276d377a0bf0f35e8d7a5b871922ebfa6aff1757d1bbe27a7982b15ce78516","9cbb45413acfdf0cc384d884de88c3f951319004450c88a2bcdad62a11bd21d9","d7a4309673b06223537bc9544b1a5fe9425628e1c8ab5605f3c5ebc27ecb8074","ced87f58b05e2b07e314754f0a7ab17e2df9c37ee2d429948024b2c6418d6c9f","3eadfd083d40777b403f4f4eecfa40f93876f2a01779157cc114b2565a7afb51","3ac0b94ba8f884f63d38450ce9e29ecd59ff00805ffdd609193d7532b8605459","a3684ea9719122f9477902acd08cd363a6f3cff6d493df89d4dc12fa58204e27","2828dabf17a6507d39ebcc58fef847e111dcf2d51b8e4ff0d32732c72be032b3","c0c46113b4cd5ec9e7cf56e6dbfb3930ef6cbba914c0883eeced396988ae8320","118ea3f4e7b9c12e92551be0766706f57a411b4f18a1b4762cfde3cd6d4f0a96","473bf3574a48185f71b70fe839fb1a340a176d80ea7f50dee489c2dc8e81613f","2b14b50de7e32a9882511d1b06be4eb036303bc72ce4a10f93a224382731500d","eeb24fa259f000f6b51a1fe89123f55de081eb2a0ef8d8f847afd67af49cfb68","91d8f3c1c3ae5efb8564ec7cb1f8ac8bf5714eb94078fb50a761ab811963e324","e21bb2cfbcdd8ce7eebb72422f3660806724f2b16cd6ce126d527511abb3a379","c04146836a55ea071b435298335e47f569db0e4d3ae420e35c83e448f944192f","31f71fe23daabea143fc8bd21dae0d5908227180fcda38ad3674df70351f9761","517168a194de5ffaf307e9f8d9eea05952997e795c2f21f8fbc37c64bc8c3872","6305acbe492b9882ec940f8f0c8e5d1e1395258852f99328efcb1cf1683ca817","7619b1f6087a4e9336b2c42bd784b05aa4a2204a364b60171e5a628f817a381e","15be9120572c9fbcd3c267bd93b4140354514c9e70734e6fcca65ff4a246f83a","412482ab85893cec1d6f26231359474d1f59f6339e2743c08da1b05fc1d12767","858e2315e58af0d28fcd7f141a2505aba6a76fd10378ba0ad169b0336fee33fc","02da6c1b34f4ae2120d70cf5f9268bf1aedf62e55529d34f5974f5a93655ce38","3ecf179ef1cc28f7f9b46c8d2e496d50b542c176e94ed0147bab147b4a961cd6","b145da03ce7e174af5ced2cbbd16e96d3d5c2212f9a90d3657b63a5650a73b7f","c7aadab66a2bc90eeb0ab145ca4daebcbc038e24359263de3b40e7b1c7affba6","99518dc06286877a7b716e0f22c1a72d3c62be42701324b49f27bcc03573efff","f4575fd196a7e33c7be9773a71bcc5fbe7182a2152be909f6b8e8e7ba2438f06","05cba5acd77a4384389b9c62739104b5a1693efd66e6abac6c5ffc53280ae777","acacda82ebd929fe2fe9e31a37f193fc8498a7393a1c31dc5ceb656e2b45b708","1b13e7c5c58ab894fe65b099b6d19bb8afae6d04252db1bf55fe6ba95a0af954","4355d326c3129e5853b56267903f294ad03e34cc28b75f96b80734882dedac80","37139a8d45342c05b6a5aa1698a2e8e882d6dca5fb9a77aa91f05ac04e92e70b","e37191297f1234d3ae54edbf174489f9a3091a05fe959724db36f8e58d21fb17","3fca8fb3aab1bc7abb9b1420f517e9012fdddcbe18803bea2dd48fad6c45e92e","d0b0779e0cac4809a9a3c764ba3bd68314de758765a8e3b9291fe1671bfeb8a1","d2116b5f989aa68e585ae261b9d6d836be6ed1be0b55b47336d9f3db34674e86","d79a227dd654be16d8006eac8b67212679d1df494dfe6da22ea0bd34a13e010c","b9c89b4a2435c171e0a9a56668f510a376cb7991eaecef08b619e6d484841735","b85baa660305c65d45f97f5b227b1505a8023955f1bf27da178232e7be99cc12","d5dd266b6f5c9c24f6b4001e172615626a51e350b3267b4af3970e4fb2c57fab","89049878a456b5e0870bb50289ea8ece28a2abd0255301a261fa8ab6a3e9a07d","a464510505f31a356e9833963d89ce39f37a098715fc2863e533255af4410525","ebbe6765a836bfa7f03181bc433c8984ca29626270ca1e240c009851222cb8a7","ac10457b51ee4a3173b7165c87c795eadd094e024f1d9f0b6f0c131126e3d903","b2f2311d7085a1feec3f6a85d7cc8bdaf1d976de1874c1f92940ad8ce6a34d39","954523d1f4856180cbf79b35bd754e14d3b2aea06c7efd71b254c745976086e9","4ee1e0fea72cd6a832c65af93b62fbf39b009e3711384bb371b48c9abba66781","d35fb65da678a4971822249d657f564ff6bdb6618428642235c4858ebafb2379","b27a613e49e00740db23e2e267b8e44e51ee85a448e787b7fa7c7a7be7316104","4d54136f3080a92f0b031115719321fa25bd855582c30f7f6b6e78969ffe7ec5","6c7554f14f08d3264e220f6ac82cf00e3b6a3bd15ec676bd97bf0e06da79e18d","a2506732a96c864f9336a4fc0403f7f4f3831cfe1db4a40ddf95866dbe2d28ef","8aa451aa2c6e762f359e6fae74e2903f6e3304b1a5ae19c1da548128ddf25add","2e756f5c2e33e9b28aebe174d147a19b46f2364027050acb8c8c2f83e005b2ec","434ea45c930ac3accf5951ac80af2da02a3e0945d33f1e59dbd3a50498cb519b","dc5f64a739746e51c220dceef9b4de820a1daa2dea3254d63bba9988ddcb500b","ab555ebf13e4f021233b5dbd6876eb2a4514aa651693ba9fa38d1e7e7df3b841","6b3233127e08357fda5142130d43a222ed0dac32861ac6c72f8288c0c79cf749","0d4dab75055c9279cb1dcb693cf8568bd724e4f653fd95a3a82ad2e267c4dda6","e4b29bf9f77857ac881ae8eb16d685ecc53e0a996f20d4ff762a6f2974474d90","df6c83e574308f6540c19e3409370482a7d8f448d56c65790b4ac0ab6f6fedd8","32f19b665839b1382b21afc41917cda47a56e744cd3df9986b13a72746d1c522","405fa7000efd4f0317eb31fa76ed40bad16be48ef2efc88b53bbe439fae74aaa","3e5a089877b3647b42c6f8d8284ff26e57fd3d94f1b1736080079796b994a89e","fde8122ba963e8f7ef9da2a35029632dc8637e9740c9d8cc9745d94ca42e6762","5a44788293f9165116c9c183be66cefef0dc5d718782a04847de53bf664f3cc1","afd653ae63ce07075b018ba5ce8f4e977b6055c81cc65998410b904b94003c0a","e113cc2ab6f65586cbba1618aab57af8f1e1fbe0ab9c3d339f1b348f6fe8f63c","9f96b9fd0362a7bfe6a3aa70baa883c47ae167469c904782c99ccc942f62f0dc","5df9a68835c1e020625127d8c951c90808d319c811fc3a780d24f64053192ea4","71807b208e5f15feffb3ff530bec5b46b1217af0d8cc96dde00d549353bcb864","67f7637f370ee8c18fe060c901e071db2c4368de90a5c58cf1f959d12b0c2f7e",{"version":"e0da4556bfd6946e3b2393017ce7a4f674931da4fb7f5f572c77c457cf0b8977","signature":"653711fba8904aa27fd8911b63cf526e7b334e13a292da4cefdbbe179ac3f3f2"},{"version":"260f889b9e2b69f77be1155348eb345166aec664b3efff6720053c6844a41f28","signature":"ef022c91ea9e75ab4082f2e881f9c4db7b346be2da706e876b253bebce5e6140"},{"version":"844a125ae027396896325818d36f66b36a25a8d1f48c6c6bf386dc9393f020d0","signature":"e4aebe3c70ebb799ff41d1032579e390adcdbc275d06052a6fcf034f5efe40e2"},{"version":"9668e16656f11b942713310bc60a72678a0ce488271084ed3c5a27a17e189d83","signature":"01906b8f80bb0b588d4e193a512cca223be4d3ceef36f038d992728db3282cdd"},{"version":"4f2dec33c56479d3353d6de907de4e2c87252a30378d9301278ff8f9eef90b49","signature":"6f95adfcbff6ace1bfda9bbaf1c47a6bdc4db5181c5e64c8c82c9c668d585fe7"},{"version":"05602f6705e141653d5538dce159f9e4a1276bcffccd1e101d98eb1338e73cf4","signature":"b82491e2990291580288c5602d4c017238977749d52b17391f0e45d9a29be644"},"e9cba458ea179833bba7b180c10e7293b4986d2f66a7bd99c13f243d91bab3d4","8b0b6a4c032a56d5651f7dd02ba3f05fbfe4131c4095093633cda3cae0991972","27484cb3aa328bc5d0957fcb34df68a5db1be280af510d9ed3a282b1a0a93b38","6c2b8c78eb1476ad2668898923fda9c3e67b295b9a6dc7a7312ead2582a76883","d8fb0821bcebbcc5ef87655a6442e8909313eb0bd7960f696b10cdb31576fdaa","1053398d8fd9b1a45170b5cca30bd54abe7ec7061ef2929c4da9feaa71737930","83f7f1890b6a202865b1014b5e72b2115f522773304d61569396be144bbee2fc","8949f85fb38104d50011076ac359186889d6e18e230b0cf8256230e802e8c4ed","fe4613c6c0d23edc04cd8585bdd86bc7337dc6265fb52037d11ca19eeb5e5aaf","667f0c535a93ce1f70d528b57a5c4bf2af8f60559795f39399c8958ede1b66a7","0f02f73e940e993a73103717e21e1d74166b83093bcb299d5e2b5c8bdc684c9b","31a335eb49c1ea1b0d8ded51d2dee99d96b45e67f581638b2bce9cd121a2dcdc","c86ad86cc7a3ec3794deab9b943a823d9aaf09b846bb581a06bf263117e8d6d9","cfe88132f67aa055a3f49d59b01585fa8d890f5a66a0a13bb71973d57573eee7","f23601713615719b1a1394deae884fb9f507de819a086d5a019c63793da9efc6","50fd11b764194f06977c162c37e5a70bcf0d3579bf82dd4de4eee3ac68d0f82f","ad5ad568f2f537a43dcc1588b2379f9dc79539ae36b8821b13a5d03625211eb2","99579aa074ed298e7a3d6a47e68f0cd099e92411212d5081ce88344a5b1b528d","d2d58166965f631fa203f405f3713b0f86f1f8b80755e9daea43057a25311e16","ce7dbf31739cc7bca35ca50e4f0cbd75cd31fd6c05c66841f8748e225dc73aaf","942ab34f62ac3f3d20014615b6442b6dc51815e30a878ebc390dd70e0dec63bf","a861cceeb708d23beebcf7f3235dcdd1a5a7d1655afd6ba49dbc0d45f5370469","0256d60785ede7860b5262f504f139aa68f74db44ba9f03807b752864580772c","396c1e5a39706999ec8cc582916e05fcb4f901631d2c192c1292e95089a494d9","89df75d28f34fc698fe261f9489125b4e5828fbd62d863bbe93373d3ed995056","7cb9b6d5c1e3508fbc81e7bbab314eac54715f9326ac72fd0eb65f17a4393d50","eefa4f00b4a4c150786e5ed866999b44687388e94a99f0b67a78b59c5b2303fd","be75c12a8d61aaadb9e33e0d7d0e7b2f3bee9a3ac618d04367e0b7c2aea3f86d","e6223b7263dd7a49f4691bf8df2b1e69f764fb46972937e6f9b28538d050b1ba","bf6599adc97713bc0eefb924accc7cb92c4415718650166fcf6157a1ef024f01","1db014db736a09668e0c0576585174dbcfd6471bb5e2d79f151a241e0d18d66b","98fca44eb9a677e5bd6eafaa95eeefbe719c3d520edc819c5d8186dcd7971163","56a2cc03b33542972ed37df7153319540238d34a3a688a004cffcb90c84b3138","82d3e00d56a71fc169f3cf9ec5f5ffcc92f6c0e67d4dfc130dafe9f1886d5515","9a388a54fbab04eef88430f5775cc48c1069d14e852d6fdb10cc966a9c3cd8e8","7007c800fbb767a1137e011d7d8fe0847cbd1a9e99bbe3528db955e32a32d6c1","e3d221660c0b79a9a3ba1111b3dfbb1136c0b52d7609b0054d3ce09ce711a3e6","892adfd3427fa4ed24bede88e8e46e4cb67e53e794365023fd473f3be796981d","b4f1cc43cdf2f75f62ea43ab32ac29e26649920906712d9605cef4849f48065b","9fac6ebf3c60ced53dd21def30a679ec225fc3ff4b8d66b86326c285a4eebb5a","992fda06eebba15d37625007500bef5b3fdd1c5e2f5a334064efeb1604c7bce3","07bc8a3551e39e70c38e7293b1a09916867d728043e352b119f951742cb91624","e47adc2176f43c617c0ab47f2d9b2bb1706d9e0669bf349a30c3fe09ddd63261","7fec79dfd7319fec7456b1b53134edb54c411ba493a0aef350eee75a4f223eeb","189c489705bb96a308dcde9b3336011d08bfbca568bcaf5d5d55c05468e9de7a","98f4b1074567341764b580bf14c5aabe82a4390d11553780814f7e932970a6f7","abdc0a8843b28c3cafbefb90079690b17b7b4e2a9c9bbf2cd8762e11a3958034","2e252235037a2cd8feebfbf74aa460f783e5d423895d13f29a934d7655a1f8be","f3e04e6c6db44b9ad05a0b7c89e914b08eee05f2050968b761ed98735d42cd62","e25d9bd8f80b6ffbcc8826ed1b407e747e4fbe346c5bab62cbe5837da4eeb189","b2f7fe7faccd7324583435ad92f8cb26a4ccc85de336839cf78afd6006f1d4bc","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","7463cb4f8b66b66d5468fc84f5446f48b8402cdeec6bfce1f0b2ab383992d3b5","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","dae3d1adc67ac3dbd1cd471889301339ec439837b5df565982345be20c8fca9a","331dd4fb49f27df3e88bcd1361a063de1e9bcc7d463d6dc386b0c0d690c1a66f","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"a1c79f857f5c7754e14c93949dad8cfefcd7df2ecc0dc9dd79a30fd493e28449","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","3adc8ac088388fd10b0e9cd3fa08abbebed9172577807394a241466ccb98f411","e050a0afcdbb269720a900c85076d18e0c1ab73e580202a2bf6964978181222a","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","3054ef91b855e005b9c4681399e9d64d2a7b07a22d539314d794f09e53b876a7","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true},"2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","93c4fc5b5237c09bc9ed65cb8f0dc1d89034406ab40500b89701341994897142","2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","6aee496bf0ecfbf6731aa8cca32f4b6e92cdc0a444911a7d88410408a45ecc5d","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","31c502014e5ba046d5cb060136929b73fd53f0f989aa37b2b0424644cb0d93ef","76232dbb982272b182a76ad8745a9b02724dc9896e2328ce360e2c56c64c9778","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","28288f5e5f8b7b895ed2abe6359c1da3e0d14a64b5aef985071285671f347c01"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"experimentalDecorators":true,"module":1,"noFallthroughCasesInSwitch":false,"noImplicitAny":false,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"strictBindCallApply":false,"strictNullChecks":false,"target":4},"fileIdsList":[[228,508],[228],[228,535],[228,355,357],[228,348,357,358],[228,387],[228,298,387],[228,388,389],[48,228,359,390,392,393],[228,294,348],[228,391],[228,348,355,356],[228,356,357],[228,348],[228,310,335],[228,451],[228,360,361,362,363,364,365,366,367,368,369,370,371,372,373],[228,303,335],[228,310],[228,300,348,451],[228,378,379,380,381,382,383,384,385],[228,305],[228,348,451],[228,374,377,386],[228,375,376],[228,339],[228,305,306,307,308],[228,395],[228,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416],[228,419],[216,228,235,418],[47,228,309,348,355,387,394,417,420,441,446,448,450],[52,228],[52,228,294],[228,303,422],[228,297,424],[228,294,298],[52,228,348],[228,302,303],[228,315],[228,317,318,319,320,321],[228,309,310,323,327],[228,328,329,330],[228,235],[49,50,51,52,53,228,295,296,297,298,299,300,301,302,303,304,310,315,316,322,327,331,332,333,335,343,344,345,346,347],[228,326],[228,311,312,313,314],[228,303,311,312],[228,303,309,310],[228,303,313],[228,303,339],[228,334,336,337,338,339,340,341,342],[49,228,303],[228,335],[49,228,303,334,338,340],[228,312],[228,336],[228,303,335,336,337],[228,325],[228,303,307,325,343],[228,323,324,326],[228,299,301,310,316,323,328,344,345,348],[53,228,299,301,304,344,345],[228,308],[228,294],[228,325,348,349,353],[228,353,354],[228,348,349],[228,348,349,350],[228,350,351],[228,350,351,352],[228,304],[228,434],[228,434,435,436,437,438,439],[228,426,434],[228,434,435,436,437,438],[228,304,434,437],[228,421,427,428,429,430,431,432,433,440],[228,304,348,427],[228,304,426],[228,304,426,451],[228,297,303,304,422,423,424,425,426],[228,294,348,422,423,442],[228,348,422],[228,444],[228,387,442],[228,442,443,445],[228,325,447],[228,334],[228,309,348],[228,449],[228,323,327,348,451],[228,458],[228,348,451,469,470],[228,462,468,469],[228,473,474],[228,451,459,476],[228,477],[228,469],[228,476,479],[47,228,459,471,472,475,478,480,483,488,491,492,493,495,497,503,505],[228,348,451,464,465,468,469],[228,348,460],[228,303,332,451,460,461,462,468,469,471,506],[228,462,463,467,469,482,487],[228,348,451,468,469],[228,481],[228,463,468,469],[228,451,463,464,468],[228,348,451,468],[228,451,461,462,467,484,485,486],[228,348,451,463,464,465,466,468,469],[228,303,451],[228,348,463,467,469],[228,468],[228,332],[228,315,348,489],[228,490],[228,348,463],[228,323,348,451,459,463,471,492],[228,326,327,451,458,494],[228,496],[215,228,235,451],[228,499,501,502],[228,498],[228,500],[228,451,462,468,499],[51,228,303,332,348,451,463,468,471,483],[228,504],[228,508,509,510,511,512],[228,508,510],[202,228,235,514],[202,228,235],[228,518,520],[228,517,518,519],[199,202,228,235,522,523],[228,515,523,524,527],[200,228,235],[228,530],[228,531],[228,537,540],[228,526],[228,525],[184,228],[187,228],[188,193,219,228],[189,199,200,207,216,227,228],[189,190,199,207,228],[191,228],[192,193,200,208,228],[193,216,224,228],[194,196,199,207,228],[195,228],[196,197,228],[198,199,228],[199,228],[199,200,201,216,227,228],[199,200,201,216,228],[202,207,216,227,228],[199,200,202,203,207,216,224,227,228],[202,204,216,224,227,228],[184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234],[199,205,228],[206,227,228],[196,199,207,216,228],[208,228],[209,228],[187,210,228],[211,226,228,232],[212,228],[213,228],[199,214,228],[214,215,228,230],[188,199,216,217,218,228],[188,216,218,228],[216,217,228],[219,228],[220,228],[199,222,223,228],[222,223,228],[193,207,224,228],[225,228],[207,226,228],[188,202,213,227,228],[193,228],[216,228,229],[228,230],[228,231],[188,193,199,201,210,216,227,228,230,232],[216,228,233],[228,544,583],[228,544,568,583],[228,583],[228,544],[228,544,569,583],[228,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582],[228,569,583],[202,228,235,526],[188,200,202,216,228,235,516],[228,586],[228,588],[228,533,539],[228,537],[228,534,538],[228,536],[54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,111,112,113,114,115,116,117,118,119,121,123,124,125,126,127,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,177,228,238,240,241,242,243,244,245,247,248,250,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293],[99,228],[57,58,228],[54,55,56,58,228],[55,58,228],[58,99,228],[54,58,176,228],[56,57,58,228],[54,58,228],[58,228],[57,228],[54,57,99,228],[55,57,58,228,267],[57,58,228,267],[57,228,275],[55,57,58,228],[67,228],[90,228],[111,228],[57,58,99,228],[58,106,228],[57,58,99,117,228],[57,58,117,228],[58,158,228],[54,58,177,228],[183,228,237],[54,58,176,183,228,236],[176,177,228,237],[183,228],[54,58,183,228,236,237],[228,251],[228,246],[228,249],[55,57,177,178,179,180,228],[99,177,178,179,180,228],[177,179,228],[57,178,179,181,182,228,238],[54,57,228],[58,228,253],[59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,100,101,102,103,104,105,107,108,109,110,111,112,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,228],[228,239],[228,451,452],[228,451,452,453,455,456],[228,451,455],[228,451,454],[228,457,506],[452],[454,455],[454]],"referencedMap":[[510,1],[508,2],[533,2],[536,3],[48,2],[358,4],[359,5],[388,6],[389,7],[390,8],[394,9],[391,10],[392,11],[356,2],[357,12],[393,13],[372,2],[360,2],[361,14],[362,15],[363,2],[364,16],[374,17],[365,2],[366,18],[367,2],[368,2],[369,14],[370,14],[371,14],[373,19],[381,20],[383,2],[380,2],[386,21],[384,2],[382,2],[378,22],[379,23],[385,2],[387,24],[375,2],[377,25],[376,26],[306,2],[309,27],[305,2],[307,2],[308,2],[411,28],[396,28],[403,28],[400,28],[413,28],[404,28],[410,28],[395,2],[414,28],[417,29],[408,28],[398,28],[416,28],[401,28],[399,28],[409,28],[405,28],[415,28],[402,28],[412,28],[397,28],[407,28],[406,28],[420,30],[419,31],[418,2],[451,32],[49,2],[50,2],[51,2],[53,33],[295,34],[296,33],[422,2],[323,2],[324,2],[423,35],[297,2],[424,2],[425,36],[52,2],[299,37],[300,2],[298,38],[301,37],[302,2],[304,39],[316,40],[317,2],[322,41],[318,2],[319,2],[320,2],[321,2],[328,42],[331,43],[329,2],[330,44],[348,45],[332,2],[333,2],[494,46],[315,47],[313,48],[311,49],[312,50],[314,2],[340,51],[334,2],[343,52],[336,53],[341,54],[339,55],[342,56],[337,57],[338,58],[326,59],[344,60],[327,61],[346,62],[347,63],[335,2],[303,2],[310,64],[345,65],[354,66],[349,2],[355,67],[350,68],[351,69],[352,70],[353,71],[421,72],[435,73],[434,2],[440,74],[436,73],[437,75],[439,76],[438,77],[441,78],[428,79],[429,80],[432,81],[431,81],[430,80],[433,80],[427,82],[443,83],[442,84],[445,85],[444,86],[446,87],[447,59],[448,88],[325,2],[449,89],[426,90],[450,91],[458,92],[459,93],[471,94],[472,2],[473,2],[474,95],[475,96],[477,97],[478,98],[479,99],[476,93],[480,100],[506,101],[466,102],[461,103],[463,104],[488,105],[464,106],[482,107],[481,2],[465,108],[485,109],[469,110],[486,2],[487,111],[467,112],[460,113],[468,114],[462,115],[483,116],[490,117],[491,118],[489,119],[492,112],[493,120],[495,121],[497,122],[496,123],[503,124],[470,16],[499,125],[498,16],[501,126],[500,2],[502,127],[484,128],[505,129],[504,16],[535,2],[513,130],[509,1],[511,131],[512,1],[515,132],[514,133],[516,2],[521,134],[517,2],[520,135],[518,2],[524,136],[528,137],[529,138],[530,2],[531,139],[532,140],[541,141],[519,2],[525,142],[526,143],[184,144],[185,144],[187,145],[188,146],[189,147],[190,148],[191,149],[192,150],[193,151],[194,152],[195,153],[196,154],[197,154],[198,155],[199,156],[200,157],[201,158],[186,2],[234,2],[202,159],[203,160],[204,161],[235,162],[205,163],[206,164],[207,165],[208,166],[209,167],[210,168],[211,169],[212,170],[213,171],[214,172],[215,173],[216,174],[218,175],[217,176],[219,177],[220,178],[221,2],[222,179],[223,180],[224,181],[225,182],[226,183],[227,184],[228,185],[229,186],[230,187],[231,188],[232,189],[233,190],[542,2],[543,2],[523,2],[522,2],[568,191],[569,192],[544,193],[547,193],[566,191],[567,191],[557,191],[556,194],[554,191],[549,191],[562,191],[560,191],[564,191],[548,191],[561,191],[565,191],[550,191],[551,191],[563,191],[545,191],[552,191],[553,191],[555,191],[559,191],[570,195],[558,191],[546,191],[583,196],[582,2],[577,195],[579,197],[578,195],[571,195],[572,195],[574,195],[576,195],[580,197],[581,197],[573,197],[575,197],[527,198],[584,2],[586,199],[587,200],[588,2],[589,201],[585,2],[540,202],[538,203],[539,204],[534,2],[537,205],[47,2],[294,206],[267,2],[245,207],[243,207],[106,208],[57,209],[56,210],[244,211],[177,212],[99,213],[55,214],[54,215],[293,210],[258,216],[257,216],[117,217],[265,208],[266,208],[268,218],[269,208],[270,215],[271,208],[242,208],[272,208],[273,219],[274,208],[275,216],[276,220],[277,208],[278,208],[279,208],[280,208],[281,216],[282,208],[283,208],[284,208],[285,208],[286,221],[287,208],[288,208],[289,208],[290,208],[291,208],[59,215],[60,215],[61,208],[62,215],[63,215],[64,215],[65,215],[66,208],[68,222],[69,215],[67,215],[70,215],[71,215],[72,215],[73,215],[74,215],[75,215],[76,208],[77,215],[78,215],[79,215],[80,215],[81,215],[82,208],[83,215],[84,208],[85,215],[86,215],[87,215],[88,215],[89,208],[91,223],[90,215],[92,215],[93,215],[94,215],[95,215],[96,221],[97,208],[98,208],[112,224],[100,225],[101,215],[102,215],[103,208],[104,215],[105,215],[107,226],[108,215],[109,215],[110,215],[111,215],[113,215],[114,215],[115,215],[116,215],[118,227],[119,215],[120,215],[121,215],[122,208],[123,215],[124,228],[125,228],[126,228],[127,208],[128,215],[129,215],[130,215],[135,215],[131,215],[132,208],[133,215],[134,208],[136,208],[137,215],[138,215],[139,208],[140,208],[141,215],[142,208],[143,215],[144,215],[145,208],[146,215],[147,215],[148,215],[149,215],[150,215],[151,215],[152,215],[153,215],[154,215],[155,215],[156,215],[157,215],[158,215],[159,229],[160,215],[161,215],[162,215],[163,215],[164,215],[165,215],[166,208],[167,208],[168,208],[169,208],[170,208],[171,215],[172,215],[173,215],[174,215],[292,208],[176,230],[251,231],[246,231],[237,232],[183,233],[249,234],[238,235],[252,236],[247,237],[248,234],[250,238],[236,44],[241,2],[181,239],[182,240],[179,2],[180,241],[178,215],[239,242],[58,243],[259,2],[260,2],[261,2],[262,2],[263,2],[264,2],[253,2],[256,216],[255,2],[254,244],[175,245],[240,246],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[46,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[453,247],[457,248],[452,16],[456,249],[455,250],[454,2],[507,251]],"exportedModulesMap":[[510,1],[508,2],[533,2],[536,3],[48,2],[358,4],[359,5],[388,6],[389,7],[390,8],[394,9],[391,10],[392,11],[356,2],[357,12],[393,13],[372,2],[360,2],[361,14],[362,15],[363,2],[364,16],[374,17],[365,2],[366,18],[367,2],[368,2],[369,14],[370,14],[371,14],[373,19],[381,20],[383,2],[380,2],[386,21],[384,2],[382,2],[378,22],[379,23],[385,2],[387,24],[375,2],[377,25],[376,26],[306,2],[309,27],[305,2],[307,2],[308,2],[411,28],[396,28],[403,28],[400,28],[413,28],[404,28],[410,28],[395,2],[414,28],[417,29],[408,28],[398,28],[416,28],[401,28],[399,28],[409,28],[405,28],[415,28],[402,28],[412,28],[397,28],[407,28],[406,28],[420,30],[419,31],[418,2],[451,32],[49,2],[50,2],[51,2],[53,33],[295,34],[296,33],[422,2],[323,2],[324,2],[423,35],[297,2],[424,2],[425,36],[52,2],[299,37],[300,2],[298,38],[301,37],[302,2],[304,39],[316,40],[317,2],[322,41],[318,2],[319,2],[320,2],[321,2],[328,42],[331,43],[329,2],[330,44],[348,45],[332,2],[333,2],[494,46],[315,47],[313,48],[311,49],[312,50],[314,2],[340,51],[334,2],[343,52],[336,53],[341,54],[339,55],[342,56],[337,57],[338,58],[326,59],[344,60],[327,61],[346,62],[347,63],[335,2],[303,2],[310,64],[345,65],[354,66],[349,2],[355,67],[350,68],[351,69],[352,70],[353,71],[421,72],[435,73],[434,2],[440,74],[436,73],[437,75],[439,76],[438,77],[441,78],[428,79],[429,80],[432,81],[431,81],[430,80],[433,80],[427,82],[443,83],[442,84],[445,85],[444,86],[446,87],[447,59],[448,88],[325,2],[449,89],[426,90],[450,91],[458,92],[459,93],[471,94],[472,2],[473,2],[474,95],[475,96],[477,97],[478,98],[479,99],[476,93],[480,100],[506,101],[466,102],[461,103],[463,104],[488,105],[464,106],[482,107],[481,2],[465,108],[485,109],[469,110],[486,2],[487,111],[467,112],[460,113],[468,114],[462,115],[483,116],[490,117],[491,118],[489,119],[492,112],[493,120],[495,121],[497,122],[496,123],[503,124],[470,16],[499,125],[498,16],[501,126],[500,2],[502,127],[484,128],[505,129],[504,16],[535,2],[513,130],[509,1],[511,131],[512,1],[515,132],[514,133],[516,2],[521,134],[517,2],[520,135],[518,2],[524,136],[528,137],[529,138],[530,2],[531,139],[532,140],[541,141],[519,2],[525,142],[526,143],[184,144],[185,144],[187,145],[188,146],[189,147],[190,148],[191,149],[192,150],[193,151],[194,152],[195,153],[196,154],[197,154],[198,155],[199,156],[200,157],[201,158],[186,2],[234,2],[202,159],[203,160],[204,161],[235,162],[205,163],[206,164],[207,165],[208,166],[209,167],[210,168],[211,169],[212,170],[213,171],[214,172],[215,173],[216,174],[218,175],[217,176],[219,177],[220,178],[221,2],[222,179],[223,180],[224,181],[225,182],[226,183],[227,184],[228,185],[229,186],[230,187],[231,188],[232,189],[233,190],[542,2],[543,2],[523,2],[522,2],[568,191],[569,192],[544,193],[547,193],[566,191],[567,191],[557,191],[556,194],[554,191],[549,191],[562,191],[560,191],[564,191],[548,191],[561,191],[565,191],[550,191],[551,191],[563,191],[545,191],[552,191],[553,191],[555,191],[559,191],[570,195],[558,191],[546,191],[583,196],[582,2],[577,195],[579,197],[578,195],[571,195],[572,195],[574,195],[576,195],[580,197],[581,197],[573,197],[575,197],[527,198],[584,2],[586,199],[587,200],[588,2],[589,201],[585,2],[540,202],[538,203],[539,204],[534,2],[537,205],[47,2],[294,206],[267,2],[245,207],[243,207],[106,208],[57,209],[56,210],[244,211],[177,212],[99,213],[55,214],[54,215],[293,210],[258,216],[257,216],[117,217],[265,208],[266,208],[268,218],[269,208],[270,215],[271,208],[242,208],[272,208],[273,219],[274,208],[275,216],[276,220],[277,208],[278,208],[279,208],[280,208],[281,216],[282,208],[283,208],[284,208],[285,208],[286,221],[287,208],[288,208],[289,208],[290,208],[291,208],[59,215],[60,215],[61,208],[62,215],[63,215],[64,215],[65,215],[66,208],[68,222],[69,215],[67,215],[70,215],[71,215],[72,215],[73,215],[74,215],[75,215],[76,208],[77,215],[78,215],[79,215],[80,215],[81,215],[82,208],[83,215],[84,208],[85,215],[86,215],[87,215],[88,215],[89,208],[91,223],[90,215],[92,215],[93,215],[94,215],[95,215],[96,221],[97,208],[98,208],[112,224],[100,225],[101,215],[102,215],[103,208],[104,215],[105,215],[107,226],[108,215],[109,215],[110,215],[111,215],[113,215],[114,215],[115,215],[116,215],[118,227],[119,215],[120,215],[121,215],[122,208],[123,215],[124,228],[125,228],[126,228],[127,208],[128,215],[129,215],[130,215],[135,215],[131,215],[132,208],[133,215],[134,208],[136,208],[137,215],[138,215],[139,208],[140,208],[141,215],[142,208],[143,215],[144,215],[145,208],[146,215],[147,215],[148,215],[149,215],[150,215],[151,215],[152,215],[153,215],[154,215],[155,215],[156,215],[157,215],[158,215],[159,229],[160,215],[161,215],[162,215],[163,215],[164,215],[165,215],[166,208],[167,208],[168,208],[169,208],[170,208],[171,215],[172,215],[173,215],[174,215],[292,208],[176,230],[251,231],[246,231],[237,232],[183,233],[249,234],[238,235],[252,236],[247,237],[248,234],[250,238],[236,44],[241,2],[181,239],[182,240],[179,2],[180,241],[178,215],[239,242],[58,243],[259,2],[260,2],[261,2],[262,2],[263,2],[264,2],[253,2],[256,216],[255,2],[254,244],[175,245],[240,246],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[46,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[453,252],[456,253],[455,254],[507,251]],"semanticDiagnosticsPerFile":[510,508,533,536,48,358,359,388,389,390,394,391,392,356,357,393,372,360,361,362,363,364,374,365,366,367,368,369,370,371,373,381,383,380,386,384,382,378,379,385,387,375,377,376,306,309,305,307,308,411,396,403,400,413,404,410,395,414,417,408,398,416,401,399,409,405,415,402,412,397,407,406,420,419,418,451,49,50,51,53,295,296,422,323,324,423,297,424,425,52,299,300,298,301,302,304,316,317,322,318,319,320,321,328,331,329,330,348,332,333,494,315,313,311,312,314,340,334,343,336,341,339,342,337,338,326,344,327,346,347,335,303,310,345,354,349,355,350,351,352,353,421,435,434,440,436,437,439,438,441,428,429,432,431,430,433,427,443,442,445,444,446,447,448,325,449,426,450,458,459,471,472,473,474,475,477,478,479,476,480,506,466,461,463,488,464,482,481,465,485,469,486,487,467,460,468,462,483,490,491,489,492,493,495,497,496,503,470,499,498,501,500,502,484,505,504,535,513,509,511,512,515,514,516,521,517,520,518,524,528,529,530,531,532,541,519,525,526,184,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,186,234,202,203,204,235,205,206,207,208,209,210,211,212,213,214,215,216,218,217,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,542,543,523,522,568,569,544,547,566,567,557,556,554,549,562,560,564,548,561,565,550,551,563,545,552,553,555,559,570,558,546,583,582,577,579,578,571,572,574,576,580,581,573,575,527,584,586,587,588,589,585,540,538,539,534,537,47,294,267,245,243,106,57,56,244,177,99,55,54,293,258,257,117,265,266,268,269,270,271,242,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,59,60,61,62,63,64,65,66,68,69,67,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,90,92,93,94,95,96,97,98,112,100,101,102,103,104,105,107,108,109,110,111,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,130,135,131,132,133,134,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,292,176,251,246,237,183,249,238,252,247,248,250,236,241,181,182,179,180,178,239,58,259,260,261,262,263,264,253,256,255,254,175,240,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,46,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,1,45,11,10,453,457,452,456,455,454,507]},"version":"4.9.3"} \ No newline at end of file diff --git a/tests_hugo/nest_course/nest-cli.json b/tests_hugo/nest_course/nest-cli.json new file mode 100644 index 00000000..25664811 --- /dev/null +++ b/tests_hugo/nest_course/nest-cli.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://json.schemastore.org/nest-cli", + "collection": "@nestjs/schematics", + "sourceRoot": "src" +} diff --git a/tests_hugo/nest_course/package-lock.json b/tests_hugo/nest_course/package-lock.json new file mode 100644 index 00000000..6f2f97f8 --- /dev/null +++ b/tests_hugo/nest_course/package-lock.json @@ -0,0 +1,14601 @@ +{ + "name": "iluvcoffee", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "iluvcoffee", + "version": "0.0.1", + "license": "UNLICENSED", + "dependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/platform-express": "^9.0.0", + "reflect-metadata": "^0.1.13", + "rimraf": "^3.0.2", + "rxjs": "^7.2.0" + }, + "devDependencies": { + "@nestjs/cli": "^9.0.0", + "@nestjs/schematics": "^9.0.0", + "@nestjs/testing": "^9.0.0", + "@types/express": "^4.17.13", + "@types/jest": "28.1.8", + "@types/node": "^16.0.0", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^8.0.1", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "28.1.3", + "prettier": "^2.3.2", + "source-map-support": "^0.5.20", + "supertest": "^6.1.3", + "ts-jest": "28.0.8", + "ts-loader": "^9.2.3", + "ts-node": "^10.0.0", + "tsconfig-paths": "4.1.0", + "typescript": "^4.7.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.2.tgz", + "integrity": "sha512-ofDhTmJqoAkmkJP0duwUaCxDBMxPlc+AWYwgs3rKKZeJBb0d+tchEXHXevD5bYbbRfXtnwM+Vye2XYHhA4nWAA==", + "dev": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/schematics": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.2.tgz", + "integrity": "sha512-90hseNg1yQ2AR+lVr/NByZRHnYAlzCL6hr9p9q1KPHxA3Owo04yX6n6dvR/xf27hCopXInXKPsasR59XCx5ZOQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.2", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-14.2.2.tgz", + "integrity": "sha512-timCty5tO1A5VOcy8nVJ+jL98i6+ct5/Hg+4rQxc3J6agmmNL9fALboJBEz1ckTt7MewlGtrpohMMy+YGhuWOg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "ansi-colors": "4.1.3", + "inquirer": "8.2.4", + "symbol-observable": "4.0.0", + "yargs-parser": "21.1.1" + }, + "bin": { + "schematics": "bin/schematics.js" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/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/@angular-devkit/schematics-cli/node_modules/inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/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/@babel/generator": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/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/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "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/@eslint/eslintrc/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/@eslint/eslintrc/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/@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "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/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/console/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/@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/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/@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "dependencies": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/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/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform/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/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/types/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/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nestjs/cli": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-9.1.5.tgz", + "integrity": "sha512-rSp26+Nv7PFtYrRSP18Gv5ZK8rRSc2SCCF5wh4SdZaVGgkxShpNq9YEfI+ik/uziN3KC5o74ppYRXGj+aHGVsA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "@angular-devkit/schematics-cli": "14.2.2", + "@nestjs/schematics": "^9.0.0", + "chalk": "3.0.0", + "chokidar": "3.5.3", + "cli-table3": "0.6.2", + "commander": "4.1.1", + "fork-ts-checker-webpack-plugin": "7.2.13", + "inquirer": "7.3.3", + "node-emoji": "1.11.0", + "ora": "5.4.1", + "os-name": "4.0.1", + "rimraf": "3.0.2", + "shelljs": "0.8.5", + "source-map-support": "0.5.21", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.1.0", + "tsconfig-paths-webpack-plugin": "4.0.0", + "typescript": "4.8.4", + "webpack": "5.74.0", + "webpack-node-externals": "3.0.0" + }, + "bin": { + "nest": "bin/nest.js" + }, + "engines": { + "node": ">= 12.9.0" + } + }, + "node_modules/@nestjs/cli/node_modules/typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@nestjs/cli/node_modules/webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/@nestjs/common": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-9.2.0.tgz", + "integrity": "sha512-Ndcqak/ETYi+n1c5lFRPbxKLyUuM6DIOxcvfEFGfi0f6ad4dWDXRDx7z/n8V0l8+Y8djvvOHgf3t0e93w963Qg==", + "dependencies": { + "iterare": "1.2.1", + "tslib": "2.4.1", + "uuid": "9.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "cache-manager": "<=5", + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "cache-manager": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/core": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-9.2.0.tgz", + "integrity": "sha512-eVN7aXAavV+ImVt8mO+rQ5YyUP6lJtQKUtQHxHKzz6Wg+9Y67WWZS2uDcDX5NNcNijbWky5bqad86fgcK9Oqig==", + "hasInstallScript": true, + "dependencies": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "object-hash": "3.0.0", + "path-to-regexp": "3.2.0", + "tslib": "2.4.1", + "uuid": "9.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/microservices": "^9.0.0", + "@nestjs/platform-express": "^9.0.0", + "@nestjs/websockets": "^9.0.0", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } + } + }, + "node_modules/@nestjs/platform-express": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-9.2.0.tgz", + "integrity": "sha512-J1+nnzjC9ATSb0jSHBqAE6D4o+PIbGPItEfYTOZ0rkE5bvqnRfgO4q94SXhfri+5PaNx2vM8tOZsKaD0QmQRGQ==", + "dependencies": { + "body-parser": "1.20.1", + "cors": "2.8.5", + "express": "4.18.2", + "multer": "1.4.4-lts.1", + "tslib": "2.4.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0" + } + }, + "node_modules/@nestjs/schematics": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.0.3.tgz", + "integrity": "sha512-kZrU/lrpVd2cnK8I3ibDb3Wi1ppl3wX3U3lVWoL+DzRRoezWKkh8upEL4q0koKmuXnsmLiu3UPxFeMOrJV7TSA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", + "fs-extra": "10.1.0", + "jsonc-parser": "3.2.0", + "pluralize": "8.0.0" + }, + "peerDependencies": { + "typescript": "^4.3.5" + } + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "dev": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core/node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", + "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "14.2.1", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics/node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "node_modules/@nestjs/schematics/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/@nestjs/schematics/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@nestjs/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@nestjs/testing": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-9.2.0.tgz", + "integrity": "sha512-Lj6UXmBJKcXB16bZzu0IG7GpH7hl5Cn71OcPSrVVuPrFd5kDYqFbodfE9OkAKaHjEhOvZ2ynoo/i6cyfX4yOvQ==", + "dev": true, + "dependencies": { + "tslib": "2.4.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/microservices": "^9.0.0", + "@nestjs/platform-express": "^9.0.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": 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/@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "28.1.8", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz", + "integrity": "sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==", + "dev": true, + "dependencies": { + "expect": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/superagent": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.15.tgz", + "integrity": "sha512-mu/N4uvfDN2zVQQ5AYJI/g4qxn2bHB6521t1UuH09ShNWjebTqN0ZFuYK9uYjcgmI0dTQEs+Owi1EO6U0OkOZQ==", + "dev": true, + "dependencies": { + "@types/cookiejar": "*", + "@types/node": "*" + } + }, + "node_modules/@types/supertest": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.12.tgz", + "integrity": "sha512-X3HPWTwXRerBZS7Mo1k6vMVR1Z6zmJcDVn5O/31whe0tnjE4te6ZJSJGq1RiqHPjzPdMTfjCFogDJmwng9xHaQ==", + "dev": true, + "dependencies": { + "@types/superagent": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.43.0.tgz", + "integrity": "sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/type-utils": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.43.0.tgz", + "integrity": "sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz", + "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.43.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "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/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "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-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "dependencies": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/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/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "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==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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==", + "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/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", + "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "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==", + "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==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "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==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cookiejar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "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/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "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/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "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/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "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.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.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/eslint/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/eslint/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/eslint/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/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/eslint/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/eslint/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/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "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/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "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/esquery/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/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/esrecurse/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/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "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/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "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-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/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "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/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "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/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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/fork-ts-checker-webpack-plugin": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.13.tgz", + "integrity": "sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "vue-template-compiler": "*", + "webpack": "^5.11.0" + }, + "peerDependenciesMeta": { + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", + "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "dev": true, + "dependencies": { + "dezalgo": "1.0.3", + "hexoid": "1.0.0", + "once": "1.4.0", + "qs": "6.9.3" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/formidable/node_modules/qs": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", + "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "dev": true, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "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==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "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-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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": "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/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "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/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "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==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/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/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "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==", + "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==" + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/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/inquirer/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/inquirer/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "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/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/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/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/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/jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/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/jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-diff/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/jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/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/jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils/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/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/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/jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve/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/jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner/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/jest-runner/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runtime/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/jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/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/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-util/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/jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/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/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watcher/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/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "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/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "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": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "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==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "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/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/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/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/macos-release": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", + "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/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/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.11.tgz", + "integrity": "sha512-GvsCITGAyDCxxsJ+X6prJexFQEhOCJaIlUbsAvjzSI5o5O7j2dle3jWvz5Z5aOdpOxW6ol3vI1+0ut+641F1+w==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "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/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "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/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=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==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "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/multer": { + "version": "1.4.4-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "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/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-abort-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz", + "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==", + "dev": true + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/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/os-name": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", + "dev": true, + "dependencies": { + "macos-release": "^2.5.0", + "windows-release": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.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/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "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-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==" + }, + "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/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "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/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "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/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "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/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "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/rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/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/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/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/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/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/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "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/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/superagent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.3.tgz", + "integrity": "sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/supertest": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.1.tgz", + "integrity": "sha512-hRohNeIfk/cA48Cxpa/w48hktP6ZaRqXb0QV5rLvW0C7paRsBU3Q5zydzYrslOJtj/gd48qx540jKtcs6vG1fQ==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.0.3" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.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/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "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/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-jest": { + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^28.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^28.0.0", + "babel-jest": "^28.0.0", + "jest": "^28.0.0", + "typescript": ">=4.3" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-loader": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.1.tgz", + "integrity": "sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/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/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz", + "integrity": "sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow==", + "dev": true, + "dependencies": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tsconfig-paths-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tsconfig-paths-webpack-plugin/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/tsconfig-paths/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/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "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-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "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/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/webpack": { + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.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/windows-release": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", + "dev": true, + "dependencies": { + "execa": "^4.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/windows-release/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "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/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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==" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@angular-devkit/core": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.2.tgz", + "integrity": "sha512-ofDhTmJqoAkmkJP0duwUaCxDBMxPlc+AWYwgs3rKKZeJBb0d+tchEXHXevD5bYbbRfXtnwM+Vye2XYHhA4nWAA==", + "dev": true, + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.2.tgz", + "integrity": "sha512-90hseNg1yQ2AR+lVr/NByZRHnYAlzCL6hr9p9q1KPHxA3Owo04yX6n6dvR/xf27hCopXInXKPsasR59XCx5ZOQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.2", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "dependencies": { + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/schematics-cli": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-14.2.2.tgz", + "integrity": "sha512-timCty5tO1A5VOcy8nVJ+jL98i6+ct5/Hg+4rQxc3J6agmmNL9fALboJBEz1ckTt7MewlGtrpohMMy+YGhuWOg==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "ansi-colors": "4.1.3", + "inquirer": "8.2.4", + "symbol-observable": "4.0.0", + "yargs-parser": "21.1.1" + }, + "dependencies": { + "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" + } + }, + "inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } + } + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "dev": true + }, + "@babel/core": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "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" + }, + "dependencies": { + "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" + } + }, + "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 + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@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 + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + } + }, + "@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "requires": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + } + }, + "@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2" + } + }, + "@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + } + }, + "@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "requires": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nestjs/cli": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-9.1.5.tgz", + "integrity": "sha512-rSp26+Nv7PFtYrRSP18Gv5ZK8rRSc2SCCF5wh4SdZaVGgkxShpNq9YEfI+ik/uziN3KC5o74ppYRXGj+aHGVsA==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.2", + "@angular-devkit/schematics": "14.2.2", + "@angular-devkit/schematics-cli": "14.2.2", + "@nestjs/schematics": "^9.0.0", + "chalk": "3.0.0", + "chokidar": "3.5.3", + "cli-table3": "0.6.2", + "commander": "4.1.1", + "fork-ts-checker-webpack-plugin": "7.2.13", + "inquirer": "7.3.3", + "node-emoji": "1.11.0", + "ora": "5.4.1", + "os-name": "4.0.1", + "rimraf": "3.0.2", + "shelljs": "0.8.5", + "source-map-support": "0.5.21", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.1.0", + "tsconfig-paths-webpack-plugin": "4.0.0", + "typescript": "4.8.4", + "webpack": "5.74.0", + "webpack-node-externals": "3.0.0" + }, + "dependencies": { + "typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true + }, + "webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + } + } + } + }, + "@nestjs/common": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-9.2.0.tgz", + "integrity": "sha512-Ndcqak/ETYi+n1c5lFRPbxKLyUuM6DIOxcvfEFGfi0f6ad4dWDXRDx7z/n8V0l8+Y8djvvOHgf3t0e93w963Qg==", + "requires": { + "iterare": "1.2.1", + "tslib": "2.4.1", + "uuid": "9.0.0" + } + }, + "@nestjs/core": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-9.2.0.tgz", + "integrity": "sha512-eVN7aXAavV+ImVt8mO+rQ5YyUP6lJtQKUtQHxHKzz6Wg+9Y67WWZS2uDcDX5NNcNijbWky5bqad86fgcK9Oqig==", + "requires": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "object-hash": "3.0.0", + "path-to-regexp": "3.2.0", + "tslib": "2.4.1", + "uuid": "9.0.0" + } + }, + "@nestjs/platform-express": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-9.2.0.tgz", + "integrity": "sha512-J1+nnzjC9ATSb0jSHBqAE6D4o+PIbGPItEfYTOZ0rkE5bvqnRfgO4q94SXhfri+5PaNx2vM8tOZsKaD0QmQRGQ==", + "requires": { + "body-parser": "1.20.1", + "cors": "2.8.5", + "express": "4.18.2", + "multer": "1.4.4-lts.1", + "tslib": "2.4.1" + } + }, + "@nestjs/schematics": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.0.3.tgz", + "integrity": "sha512-kZrU/lrpVd2cnK8I3ibDb3Wi1ppl3wX3U3lVWoL+DzRRoezWKkh8upEL4q0koKmuXnsmLiu3UPxFeMOrJV7TSA==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", + "fs-extra": "10.1.0", + "jsonc-parser": "3.2.0", + "pluralize": "8.0.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "dev": true, + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "dependencies": { + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", + "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", + "dev": true, + "requires": { + "@angular-devkit/core": "14.2.1", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "dependencies": { + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + } + } + }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@nestjs/testing": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-9.2.0.tgz", + "integrity": "sha512-Lj6UXmBJKcXB16bZzu0IG7GpH7hl5Cn71OcPSrVVuPrFd5kDYqFbodfE9OkAKaHjEhOvZ2ynoo/i6cyfX4yOvQ==", + "dev": true, + "requires": { + "tslib": "2.4.1" + } + }, + "@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" + } + }, + "@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "requires": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==", + "dev": true + }, + "@types/eslint": { + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "28.1.8", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz", + "integrity": "sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==", + "dev": true, + "requires": { + "expect": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "@types/node": { + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/superagent": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.15.tgz", + "integrity": "sha512-mu/N4uvfDN2zVQQ5AYJI/g4qxn2bHB6521t1UuH09ShNWjebTqN0ZFuYK9uYjcgmI0dTQEs+Owi1EO6U0OkOZQ==", + "dev": true, + "requires": { + "@types/cookiejar": "*", + "@types/node": "*" + } + }, + "@types/supertest": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.12.tgz", + "integrity": "sha512-X3HPWTwXRerBZS7Mo1k6vMVR1Z6zmJcDVn5O/31whe0tnjE4te6ZJSJGq1RiqHPjzPdMTfjCFogDJmwng9xHaQ==", + "dev": true, + "requires": { + "@types/superagent": "*" + } + }, + "@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.43.0.tgz", + "integrity": "sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/type-utils": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.43.0.tgz", + "integrity": "sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", + "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.43.0.tgz", + "integrity": "sha512-K21f+KY2/VvYggLf5Pk4tgBOPs2otTaIHy2zjclo7UZGLyFH86VfUOm5iq+OtDtxq/Zwu2I3ujDBykVW4Xtmtg==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.43.0", + "@typescript-eslint/utils": "5.43.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", + "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", + "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/visitor-keys": "5.43.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", + "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.43.0", + "@typescript-eslint/types": "5.43.0", + "@typescript-eslint/typescript-estree": "5.43.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", + "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.43.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, + "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": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + } + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "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==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "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-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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 + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "requires": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^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==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "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" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", + "dev": true + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "ci-info": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", + "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "dev": true + }, + "cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "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==", + "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==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "cookiejar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "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" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "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 + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true + }, + "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" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "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.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "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" + } + }, + "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 + } + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "requires": {} + }, + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "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" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "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" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "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 + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "requires": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "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" + } + }, + "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 + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "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" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + } + } + }, + "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" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "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 + }, + "fork-ts-checker-webpack-plugin": { + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.13.tgz", + "integrity": "sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "dependencies": { + "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" + } + } + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", + "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "dev": true, + "requires": { + "dezalgo": "1.0.3", + "hexoid": "1.0.0", + "once": "1.4.0", + "qs": "6.9.3" + }, + "dependencies": { + "qs": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", + "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "dev": true + } + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "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==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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": "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" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "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" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "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==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "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" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.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==", + "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==" + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "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" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "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-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==" + }, + "jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "requires": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + } + }, + "jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + } + }, + "jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "requires": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + } + }, + "jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true + }, + "jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "requires": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + } + }, + "jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true + }, + "jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "requires": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + } + }, + "jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "requires": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "dependencies": { + "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" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "requires": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "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" + } + } + } + }, + "jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "requires": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "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" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "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": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "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" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "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==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "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 + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + }, + "macos-release": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", + "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "dev": true + }, + "magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memfs": { + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.11.tgz", + "integrity": "sha512-GvsCITGAyDCxxsJ+X6prJexFQEhOCJaIlUbsAvjzSI5o5O7j2dle3jWvz5Z5aOdpOxW6ol3vI1+0ut+641F1+w==", + "dev": true, + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "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" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "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 + }, + "multer": { + "version": "1.4.4-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-abort-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz", + "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==", + "dev": true + }, + "node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "requires": { + "lodash": "^4.17.21" + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.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==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "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" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "os-name": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", + "dev": true, + "requires": { + "macos-release": "^2.5.0", + "windows-release": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "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" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "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" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "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==" + }, + "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-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==" + }, + "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 + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "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 + }, + "prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "requires": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "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 + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "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 + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "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-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "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 + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "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==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "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" + } + }, + "rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "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" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "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 + } + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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 + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "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 + }, + "superagent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.3.tgz", + "integrity": "sha512-oBC+aNsCjzzjmO5AOPBPFS+Z7HPzlx+DQr/aHwM08kI+R24gsDmAS1LMfza1fK+P+SKlTAoNZpOvooE/pRO1HA==", + "dev": true, + "requires": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "dependencies": { + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + } + } + }, + "supertest": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.1.tgz", + "integrity": "sha512-hRohNeIfk/cA48Cxpa/w48hktP6ZaRqXb0QV5rLvW0C7paRsBU3Q5zydzYrslOJtj/gd48qx540jKtcs6vG1fQ==", + "dev": true, + "requires": { + "methods": "^1.1.2", + "superagent": "^8.0.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.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 + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "dependencies": { + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "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 + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "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" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "ts-jest": { + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^28.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + } + }, + "ts-loader": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.1.tgz", + "integrity": "sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "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" + } + } + } + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz", + "integrity": "sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow==", + "dev": true, + "requires": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "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 + } + } + }, + "tsconfig-paths-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "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-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "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 + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "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" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "webpack": { + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "dev": true, + "peer": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + } + }, + "webpack-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "dev": true + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.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" + } + }, + "windows-release": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", + "dev": true, + "requires": { + "execa": "^4.0.2" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + } + } + }, + "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 + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "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 + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "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/tests_hugo/nest_course/package.json b/tests_hugo/nest_course/package.json new file mode 100644 index 00000000..ea589151 --- /dev/null +++ b/tests_hugo/nest_course/package.json @@ -0,0 +1,71 @@ +{ + "name": "iluvcoffee", + "version": "0.0.1", + "description": "", + "author": "", + "private": true, + "license": "UNLICENSED", + "scripts": { + "prebuild": "rimraf dist", + "build": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "start": "nest start", + "start:dev": "nest start --watch", + "start:debug": "nest start --debug --watch", + "start:prod": "node dist/main", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:e2e": "jest --config ./test/jest-e2e.json" + }, + "dependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/platform-express": "^9.0.0", + "reflect-metadata": "^0.1.13", + "rimraf": "^3.0.2", + "rxjs": "^7.2.0" + }, + "devDependencies": { + "@nestjs/cli": "^9.0.0", + "@nestjs/schematics": "^9.0.0", + "@nestjs/testing": "^9.0.0", + "@types/express": "^4.17.13", + "@types/jest": "28.1.8", + "@types/node": "^16.0.0", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^8.0.1", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "28.1.3", + "prettier": "^2.3.2", + "source-map-support": "^0.5.20", + "supertest": "^6.1.3", + "ts-jest": "28.0.8", + "ts-loader": "^9.2.3", + "ts-node": "^10.0.0", + "tsconfig-paths": "4.1.0", + "typescript": "^4.7.4" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + }, + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "testEnvironment": "node" + } +} diff --git a/tests_hugo/nest_course/src/app.controller.spec.ts b/tests_hugo/nest_course/src/app.controller.spec.ts new file mode 100644 index 00000000..d22f3890 --- /dev/null +++ b/tests_hugo/nest_course/src/app.controller.spec.ts @@ -0,0 +1,22 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; + +describe('AppController', () => { + let appController: AppController; + + beforeEach(async () => { + const app: TestingModule = await Test.createTestingModule({ + controllers: [AppController], + providers: [AppService], + }).compile(); + + appController = app.get(AppController); + }); + + describe('root', () => { + it('should return "Hello World!"', () => { + expect(appController.getHello()).toBe('Hello World!'); + }); + }); +}); diff --git a/tests_hugo/nest_course/src/app.controller.ts b/tests_hugo/nest_course/src/app.controller.ts new file mode 100644 index 00000000..cce879ee --- /dev/null +++ b/tests_hugo/nest_course/src/app.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get } from '@nestjs/common'; +import { AppService } from './app.service'; + +@Controller() +export class AppController { + constructor(private readonly appService: AppService) {} + + @Get() + getHello(): string { + return this.appService.getHello(); + } +} diff --git a/tests_hugo/nest_course/src/app.module.ts b/tests_hugo/nest_course/src/app.module.ts new file mode 100644 index 00000000..65764776 --- /dev/null +++ b/tests_hugo/nest_course/src/app.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; +import { CoffeesController } from './coffees/coffees.controller'; +import { CoffeesService } from './coffees/coffees.service'; + +@Module({ + imports: [], + controllers: [AppController, CoffeesController], + providers: [AppService, CoffeesService], +}) +export class AppModule {} diff --git a/tests_hugo/nest_course/src/app.service.ts b/tests_hugo/nest_course/src/app.service.ts new file mode 100644 index 00000000..acbfef68 --- /dev/null +++ b/tests_hugo/nest_course/src/app.service.ts @@ -0,0 +1,8 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class AppService { + getHello(): string { + return 'Hello nest!'; + } +} diff --git a/tests_hugo/nest_course/src/coffees/coffees.controller.spec.ts b/tests_hugo/nest_course/src/coffees/coffees.controller.spec.ts new file mode 100644 index 00000000..9211c450 --- /dev/null +++ b/tests_hugo/nest_course/src/coffees/coffees.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CoffeesController } from './coffees.controller'; + +describe('CoffeesController', () => { + let controller: CoffeesController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [CoffeesController], + }).compile(); + + controller = module.get(CoffeesController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/tests_hugo/nest_course/src/coffees/coffees.controller.ts b/tests_hugo/nest_course/src/coffees/coffees.controller.ts new file mode 100644 index 00000000..3a621ccd --- /dev/null +++ b/tests_hugo/nest_course/src/coffees/coffees.controller.ts @@ -0,0 +1,45 @@ +import { + Controller, + Get, + Param, + Post, + Body, + HttpCode, + HttpStatus, + Patch, + Delete, + Query +} from '@nestjs/common'; +import { CoffeesService } from './coffees.service'; + +@Controller('coffees') +export class CoffeesController { + constructor(private readonly coffeesService: CoffeesService) {} + + @Get() + findAll(@Query() paginationQuery) { + // const { limit, offset } = paginationQuery; + return this.coffeesService.findAll(); + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.coffeesService.findOne(id); + } + + @Post() + //@HttpCode(HttpStatus.GONE) + create(@Body() body) { + return this.coffeesService.create(body); + } + + @Patch(':id') + update(@Param('id') id: string, @Body() body) { + return this.coffeesService.update(id, body); + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.coffeesService.remove(id); + } +} diff --git a/tests_hugo/nest_course/src/coffees/coffees.service.spec.ts b/tests_hugo/nest_course/src/coffees/coffees.service.spec.ts new file mode 100644 index 00000000..e7784987 --- /dev/null +++ b/tests_hugo/nest_course/src/coffees/coffees.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CoffeesService } from './coffees.service'; + +describe('CoffeesService', () => { + let service: CoffeesService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [CoffeesService], + }).compile(); + + service = module.get(CoffeesService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/tests_hugo/nest_course/src/coffees/coffees.service.ts b/tests_hugo/nest_course/src/coffees/coffees.service.ts new file mode 100644 index 00000000..bd10bedd --- /dev/null +++ b/tests_hugo/nest_course/src/coffees/coffees.service.ts @@ -0,0 +1,42 @@ +import { Injectable } from '@nestjs/common'; +import { Coffee } from './entities/coffee.entity'; + +@Injectable() +export class CoffeesService { + + private coffees: Coffee[] = [ + { + id: 1, + name: 'arabica', + brand: 'illy', + flavors: ['chocolate', 'vanilla'], + } + ]; + + findAll() { + return this.coffees; + } + + findOne(id: string) { + return this.coffees.find(item => item.id === +id); + } + + create(createCoffeeDto: any) { + this.coffees.push(createCoffeeDto); + } + + update(id: string, updateCoffeeDto: any) { + const existingCoffee = this.findOne(id); + if (existingCoffee) { + // update the existing entity + } + } + + remove(id: string) { + const coffeeIndex = this.coffees.findIndex(item => item.id === +id); + if (coffeeIndex >= 0) { + this.coffees.splice(coffeeIndex, 1); + } + } +} + diff --git a/tests_hugo/nest_course/src/coffees/entities/coffee.entity.ts b/tests_hugo/nest_course/src/coffees/entities/coffee.entity.ts new file mode 100644 index 00000000..6fce50d7 --- /dev/null +++ b/tests_hugo/nest_course/src/coffees/entities/coffee.entity.ts @@ -0,0 +1,6 @@ +export class Coffee { + id: number; + name: string; + brand: string; + flavors: string[]; +} diff --git a/tests_hugo/nest_course/src/main.ts b/tests_hugo/nest_course/src/main.ts new file mode 100644 index 00000000..13cad38c --- /dev/null +++ b/tests_hugo/nest_course/src/main.ts @@ -0,0 +1,8 @@ +import { NestFactory } from '@nestjs/core'; +import { AppModule } from './app.module'; + +async function bootstrap() { + const app = await NestFactory.create(AppModule); + await app.listen(3000); +} +bootstrap(); diff --git a/tests_hugo/nest_course/test/app.e2e-spec.ts b/tests_hugo/nest_course/test/app.e2e-spec.ts new file mode 100644 index 00000000..50cda623 --- /dev/null +++ b/tests_hugo/nest_course/test/app.e2e-spec.ts @@ -0,0 +1,24 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppModule } from './../src/app.module'; + +describe('AppController (e2e)', () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + it('/ (GET)', () => { + return request(app.getHttpServer()) + .get('/') + .expect(200) + .expect('Hello World!'); + }); +}); diff --git a/tests_hugo/nest_course/test/jest-e2e.json b/tests_hugo/nest_course/test/jest-e2e.json new file mode 100644 index 00000000..e9d912f3 --- /dev/null +++ b/tests_hugo/nest_course/test/jest-e2e.json @@ -0,0 +1,9 @@ +{ + "moduleFileExtensions": ["js", "json", "ts"], + "rootDir": ".", + "testEnvironment": "node", + "testRegex": ".e2e-spec.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } +} diff --git a/tests_hugo/nest_course/tsconfig.build.json b/tests_hugo/nest_course/tsconfig.build.json new file mode 100644 index 00000000..64f86c6b --- /dev/null +++ b/tests_hugo/nest_course/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] +} diff --git a/tests_hugo/nest_course/tsconfig.json b/tests_hugo/nest_course/tsconfig.json new file mode 100644 index 00000000..adb614ca --- /dev/null +++ b/tests_hugo/nest_course/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "es2017", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./", + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": false, + "noImplicitAny": false, + "strictBindCallApply": false, + "forceConsistentCasingInFileNames": false, + "noFallthroughCasesInSwitch": false + } +} diff --git a/tests_hugo/pure_node/index.html b/tests_hugo/pure_node/index.html new file mode 100644 index 00000000..64ad255d --- /dev/null +++ b/tests_hugo/pure_node/index.html @@ -0,0 +1,9 @@ + + + + title + + +

hello world

+ + diff --git a/tests_hugo/pure_node/index2.html b/tests_hugo/pure_node/index2.html new file mode 100644 index 00000000..18510d78 --- /dev/null +++ b/tests_hugo/pure_node/index2.html @@ -0,0 +1,10 @@ + + + + title + + +

page 2

+ + + diff --git a/tests_hugo/pure_node/myExpress.js b/tests_hugo/pure_node/myExpress.js new file mode 100644 index 00000000..0d851233 --- /dev/null +++ b/tests_hugo/pure_node/myExpress.js @@ -0,0 +1,65 @@ +const http = require('http') +const fs = require('fs') +const url = require('url') + +var res = http.ServerResponse.prototype + +res.sendFile = function (file) { + fs.readFile(file, (err, data) => { + if (!err) { + console.log("here") + this.writeHead(200, { + 'content-type': 'text/html; charset=utf-8' + }) + this.end(data) + } + else + { + this.writeHead(404) + this.end('file not found') + } + }) +} + + +class myServer { + constructor() { + this._gets = {}; + this._posts = {}; + this._puts = {}; + this._deletes = {}; + + this._server = http.createServer((req, res) => { + + const pathName = url.parse(req.url).pathname; + + if (req.method === "GET" && this._gets[pathName]) { + this._gets[pathName](req, res); + } + else if (req.method === "POST" && this._posts[pathName]) { + this._posts[pathName](req, res); + } + else if (req.method === "PUT" && this._puts[pathName]) { + this._puts[pathName](req, res); + } + else if (req.method === "DELETE" && this._deletes[pathName]) { + this._deletes[pathName](req, res); + } else { + res.writeHead(404) + res.end('not found'); + } + }) + } + + get(url, callback) { this._gets[url] = callback; } + post(url, callback) { this._posts[url] = callback; } + add(url, callback) { this._puts[url] = callback; } + delete(url, callback) { this._deletes[url] = callback; } + + listen(port, callback) { this._server.listen(port, callback) } +} + +const myExpress = () => { return new myServer() } + +module.exports = myExpress; + diff --git a/tests_hugo/pure_node/server.js b/tests_hugo/pure_node/server.js new file mode 100644 index 00000000..45bfec92 --- /dev/null +++ b/tests_hugo/pure_node/server.js @@ -0,0 +1,10 @@ +const myExpress = require('./myExpress') +const server = myExpress() + +server.get("/", (req, res) => res.sendFile(__dirname + "/index.html")) +server.get("/index.html", (req, res) => res.sendFile(__dirname + "/index.html")) +server.get("/index2.html", (req, res) => res.sendFile(__dirname + "/index2.html")) + +const port = 3001; +server.listen(port, console.log(`listening on port ${port}`)); + diff --git a/tests_hugo/pure_node/server.js.bak b/tests_hugo/pure_node/server.js.bak new file mode 100644 index 00000000..8f3fcb4c --- /dev/null +++ b/tests_hugo/pure_node/server.js.bak @@ -0,0 +1,39 @@ + +//const https = require('node:https') +const http = require('http') +const fs = require('fs') +const url = require('url') + +const rootName = (name) => { + fullName = __dirname + name + return fullName +} + +const sendHtml = (pathName, response) => { + + console.log(` name: ${pathName}`) + console.log(`namePath: ${rootName(pathName)}`) + + fs.readFile(rootName(pathName), (err, data) => { + if (err) { + response.writeHead(404) + response.end('file not found') + } + else { + response.writeHead(200, { + 'content-type': 'text/html; charset=utf-8' + }) + response.end(data) + } + }) +} + +const server = http.createServer((request, response) => { + let pathName = url.parse(request.url).pathname + // read file + if (pathName.endsWith(".html")) + sendHtml(pathName, response) +}) + +server.listen('8080') + diff --git a/tests_hugo/with_express/index.html b/tests_hugo/with_express/index.html new file mode 100644 index 00000000..64ad255d --- /dev/null +++ b/tests_hugo/with_express/index.html @@ -0,0 +1,9 @@ + + + + title + + +

hello world

+ + diff --git a/tests_hugo/with_express/package.json b/tests_hugo/with_express/package.json new file mode 100644 index 00000000..6349556d --- /dev/null +++ b/tests_hugo/with_express/package.json @@ -0,0 +1,17 @@ +{ + "name": "tests_hugo", + "version": "1.0.0", + "description": "", + "main": "server.js", + "dependencies": { + "express": "^4.18.2" + }, + "devDependencies": {}, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node server.js" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/tests_hugo/with_express/server.js b/tests_hugo/with_express/server.js new file mode 100644 index 00000000..8964a63c --- /dev/null +++ b/tests_hugo/with_express/server.js @@ -0,0 +1,10 @@ +const express = require('express') +const server = express() + +server.get('/', (req, res) => { + res.sendFile(__dirname + "/" + "index.html") +}) + +const port = 3000 +server.listen(port, console.log(`listening on port ${port} with express`)); + From 5bd099ad38ccf54336f38b6ebdbc3f7e81b2fae7 Mon Sep 17 00:00:00 2001 From: simplonco Date: Tue, 3 Jan 2023 13:48:31 +0100 Subject: [PATCH 04/35] created chat service and module --- srcs/docker-compose.yml | 1 - .../nestjs/api_back/src/app.module.ts | 2 +- .../nestjs/api_back/src/chat/chat.module.ts | 16 ++++++++++++++++ .../nestjs/api_back/src/chat/chat.service.ts | 0 srcs/requirements/svelte/api_front/.env | 2 ++ 5 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 srcs/requirements/nestjs/api_back/src/chat/chat.module.ts create mode 100644 srcs/requirements/nestjs/api_back/src/chat/chat.service.ts create mode 100644 srcs/requirements/svelte/api_front/.env diff --git a/srcs/docker-compose.yml b/srcs/docker-compose.yml index f579cd49..dedd380f 100644 --- a/srcs/docker-compose.yml +++ b/srcs/docker-compose.yml @@ -5,7 +5,6 @@ services: context: ./requirements/nestjs target: development dockerfile: Dockerfile - no_cache: true args: - NODE_ENV=${NODE_ENV} - WEBSITE_HOST=${WEBSITE_HOST} diff --git a/srcs/requirements/nestjs/api_back/src/app.module.ts b/srcs/requirements/nestjs/api_back/src/app.module.ts index a0e5bc5e..81775eba 100644 --- a/srcs/requirements/nestjs/api_back/src/app.module.ts +++ b/srcs/requirements/nestjs/api_back/src/app.module.ts @@ -35,7 +35,7 @@ import { ChatGateway } from './chat/chat.gateway'; controllers: [AppController], providers: [ AppService, - ChatGateway, + ChatGateway, ], }) export class AppModule {} diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts new file mode 100644 index 00000000..53188366 --- /dev/null +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts @@ -0,0 +1,16 @@ +import { Module } from '@nestjs/common'; +//import { TypeOrmModule } from '@nestjs/typeorm'; +//import { FriendshipService } from './friendship.service'; +//import { FriendshipController } from './friendship.controller'; +//import { Friendship } from './entities/friendship.entity'; +//import { User } from '../users/entities/user.entity'; + +//@Module({ +// imports: [TypeOrmModule.forFeature([Friendship, User])], +// providers: [FriendshipService], +// controllers: [FriendshipController], +// exports: [FriendshipService], +//}) + +export class FriendshipsModule {} + diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts new file mode 100644 index 00000000..e69de29b diff --git a/srcs/requirements/svelte/api_front/.env b/srcs/requirements/svelte/api_front/.env new file mode 100644 index 00000000..1b450684 --- /dev/null +++ b/srcs/requirements/svelte/api_front/.env @@ -0,0 +1,2 @@ +WEBSITE_HOST=transcendance +WEBSITE_PORT=8080 From 61bd289981213dc5c94e4cb5a90074d982c791c0 Mon Sep 17 00:00:00 2001 From: simplonco Date: Tue, 3 Jan 2023 20:06:41 +0100 Subject: [PATCH 05/35] retrieve chat layout test --- .../svelte/api_front/public/build/bundle.js | 513 +++++++++++++++--- .../api_front/public/build/bundle.js.map | 2 +- .../src/pieces/chat/Chat_layouts.svelte | 5 + .../src/pieces/chat/tmp_debug.svelte | 27 + 4 files changed, 460 insertions(+), 87 deletions(-) create mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/tmp_debug.svelte diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 7b3423e8..8f479b98 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -1417,7 +1417,7 @@ var app = (function () { return block; } - function create_fragment$y(ctx) { + function create_fragment$z(ctx) { let current_block_type_index; let if_block; let if_block_anchor; @@ -1490,7 +1490,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$y.name, + id: create_fragment$z.name, type: "component", source: "", ctx @@ -1691,7 +1691,7 @@ var app = (function () { window.location.hash = href; } - function instance$y($$self, $$props, $$invalidate) { + function instance$z($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('Router', slots, []); let { routes = {} } = $$props; @@ -2106,7 +2106,7 @@ var app = (function () { constructor(options) { super(options); - init$2(this, options, instance$y, create_fragment$y, safe_not_equal, { + init$2(this, options, instance$z, create_fragment$z, safe_not_equal, { routes: 3, prefix: 4, restoreScrollState: 5 @@ -2116,7 +2116,7 @@ var app = (function () { component: this, tagName: "Router", options, - id: create_fragment$y.name + id: create_fragment$z.name }); } @@ -2146,9 +2146,9 @@ var app = (function () { } /* src/pages/NotFound.svelte generated by Svelte v3.53.1 */ - const file$u = "src/pages/NotFound.svelte"; + const file$v = "src/pages/NotFound.svelte"; - function create_fragment$x(ctx) { + function create_fragment$y(ctx) { let h1; let t1; let p0; @@ -2174,12 +2174,12 @@ var app = (function () { a = element("a"); h2 = element("h2"); h2.textContent = "Take me home →"; - add_location(h1, file$u, 4, 0, 64); - add_location(p0, file$u, 5, 0, 87); - add_location(p1, file$u, 7, 0, 192); - add_location(h2, file$u, 9, 4, 247); + add_location(h1, file$v, 4, 0, 64); + add_location(p0, file$v, 5, 0, 87); + add_location(p1, file$v, 7, 0, 192); + add_location(h2, file$v, 9, 4, 247); attr_dev(a, "href", "/"); - add_location(a, file$u, 8, 0, 221); + add_location(a, file$v, 8, 0, 221); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -2217,7 +2217,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$x.name, + id: create_fragment$y.name, type: "component", source: "", ctx @@ -2226,7 +2226,7 @@ var app = (function () { return block; } - function instance$x($$self, $$props, $$invalidate) { + function instance$y($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('NotFound', slots, []); const writable_props = []; @@ -2242,13 +2242,13 @@ var app = (function () { class NotFound extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$x, create_fragment$x, safe_not_equal, {}); + init$2(this, options, instance$y, create_fragment$y, safe_not_equal, {}); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "NotFound", options, - id: create_fragment$x.name + id: create_fragment$y.name }); } } @@ -2293,7 +2293,7 @@ var app = (function () { /* src/pieces/Header.svelte generated by Svelte v3.53.1 */ const { console: console_1$8 } = globals; - const file$t = "src/pieces/Header.svelte"; + const file$u = "src/pieces/Header.svelte"; // (27:39) function create_if_block_1$5(ctx) { @@ -2306,7 +2306,7 @@ var app = (function () { button = element("button"); button.textContent = "Settings"; attr_dev(button, "class", "svelte-1aisfio"); - add_location(button, file$t, 27, 6, 1147); + add_location(button, file$u, 27, 6, 1147); }, m: function mount(target, anchor) { insert_dev(target, button, anchor); @@ -2346,7 +2346,7 @@ var app = (function () { button = element("button"); button.textContent = "My Profile"; attr_dev(button, "class", "svelte-1aisfio"); - add_location(button, file$t, 25, 6, 1037); + add_location(button, file$u, 25, 6, 1037); }, m: function mount(target, anchor) { insert_dev(target, button, anchor); @@ -2375,7 +2375,7 @@ var app = (function () { return block; } - function create_fragment$w(ctx) { + function create_fragment$x(ctx) { let header; let img; let img_src_value; @@ -2437,25 +2437,25 @@ var app = (function () { if (!src_url_equal(img.src, img_src_value = "/img/potato_logo.png")) attr_dev(img, "src", img_src_value); attr_dev(img, "alt", "Potato Pong Logo"); attr_dev(img, "class", "svelte-1aisfio"); - add_location(img, file$t, 18, 2, 697); + add_location(img, file$u, 18, 2, 697); attr_dev(h1, "class", "svelte-1aisfio"); - add_location(h1, file$t, 19, 2, 784); + add_location(h1, file$u, 19, 2, 784); attr_dev(button0, "class", "svelte-1aisfio"); - add_location(button0, file$t, 21, 1, 814); + add_location(button0, file$u, 21, 1, 814); attr_dev(button1, "class", "svelte-1aisfio"); - add_location(button1, file$t, 22, 1, 870); + add_location(button1, file$u, 22, 1, 870); attr_dev(button2, "class", "svelte-1aisfio"); - add_location(button2, file$t, 23, 1, 935); + add_location(button2, file$u, 23, 1, 935); attr_dev(button3, "class", "svelte-1aisfio"); - add_location(button3, file$t, 34, 4, 1391); + add_location(button3, file$u, 34, 4, 1391); attr_dev(button4, "class", "svelte-1aisfio"); - add_location(button4, file$t, 35, 4, 1464); + add_location(button4, file$u, 35, 4, 1464); attr_dev(button5, "class", "svelte-1aisfio"); - add_location(button5, file$t, 36, 4, 1523); + add_location(button5, file$u, 36, 4, 1523); attr_dev(nav, "class", "svelte-1aisfio"); - add_location(nav, file$t, 20, 2, 807); + add_location(nav, file$u, 20, 2, 807); attr_dev(header, "class", "svelte-1aisfio"); - add_location(header, file$t, 17, 0, 686); + add_location(header, file$u, 17, 0, 686); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -2524,7 +2524,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$w.name, + id: create_fragment$x.name, type: "component", source: "", ctx @@ -2533,7 +2533,7 @@ var app = (function () { return block; } - function instance$w($$self, $$props, $$invalidate) { + function instance$x($$self, $$props, $$invalidate) { let $location; validate_store(location$2, 'location'); component_subscribe($$self, location$2, $$value => $$invalidate(0, $location = $$value)); @@ -2595,19 +2595,19 @@ var app = (function () { class Header extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$w, create_fragment$w, safe_not_equal, {}); + init$2(this, options, instance$x, create_fragment$x, safe_not_equal, {}); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "Header", options, - id: create_fragment$w.name + id: create_fragment$x.name }); } } /* src/pieces/GenerateUserDisplay.svelte generated by Svelte v3.53.1 */ - const file$s = "src/pieces/GenerateUserDisplay.svelte"; + const file$t = "src/pieces/GenerateUserDisplay.svelte"; // (58:2) {#if user !== undefined} function create_if_block$b(ctx) { @@ -2708,49 +2708,49 @@ var app = (function () { attr_dev(img, "class", "avatar svelte-1tyjf3q"); if (!src_url_equal(img.src, img_src_value = /*avatar*/ ctx[2])) attr_dev(img, "src", img_src_value); attr_dev(img, "alt", "default user icon"); - add_location(img, file$s, 61, 4, 2001); + add_location(img, file$t, 61, 4, 2001); attr_dev(div0, "class", "username svelte-1tyjf3q"); - add_location(div0, file$s, 62, 4, 2065); + add_location(div0, file$t, 62, 4, 2065); attr_dev(path0, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); attr_dev(path0, "class", "svelte-1tyjf3q"); - add_location(path0, file$s, 67, 10, 2271); + add_location(path0, file$t, 67, 10, 2271); attr_dev(svg0, "viewBox", "0 0 512 512"); attr_dev(svg0, "class", "svelte-1tyjf3q"); - add_location(svg0, file$s, 66, 10, 2233); + add_location(svg0, file$t, 66, 10, 2233); attr_dev(span0, "class", "glitter-star svelte-1tyjf3q"); - add_location(span0, file$s, 65, 8, 2174); + add_location(span0, file$t, 65, 8, 2174); attr_dev(path1, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); attr_dev(path1, "class", "svelte-1tyjf3q"); - add_location(path1, file$s, 72, 10, 2764); + add_location(path1, file$t, 72, 10, 2764); attr_dev(svg1, "viewBox", "0 0 512 512"); attr_dev(svg1, "class", "svelte-1tyjf3q"); - add_location(svg1, file$s, 71, 10, 2726); + add_location(svg1, file$t, 71, 10, 2726); attr_dev(span1, "class", "glitter-star svelte-1tyjf3q"); - add_location(span1, file$s, 70, 8, 2667); + add_location(span1, file$t, 70, 8, 2667); attr_dev(path2, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); attr_dev(path2, "class", "svelte-1tyjf3q"); - add_location(path2, file$s, 77, 10, 3257); + add_location(path2, file$t, 77, 10, 3257); attr_dev(svg2, "viewBox", "0 0 512 512"); attr_dev(svg2, "class", "svelte-1tyjf3q"); - add_location(svg2, file$s, 76, 10, 3219); + add_location(svg2, file$t, 76, 10, 3219); attr_dev(span2, "class", "glitter-star svelte-1tyjf3q"); - add_location(span2, file$s, 75, 8, 3160); + add_location(span2, file$t, 75, 8, 3160); attr_dev(span3, "class", "glitter-text svelte-1tyjf3q"); - add_location(span3, file$s, 80, 8, 3653); + add_location(span3, file$t, 80, 8, 3653); attr_dev(span4, "class", "glitter svelte-1tyjf3q"); - add_location(span4, file$s, 64, 6, 2143); + add_location(span4, file$t, 64, 6, 2143); attr_dev(div1, "class", "rank svelte-1tyjf3q"); - add_location(div1, file$s, 63, 4, 2113); + add_location(div1, file$t, 63, 4, 2113); attr_dev(h4, "class", "svelte-1tyjf3q"); - add_location(h4, file$s, 84, 6, 3758); - add_location(p0, file$s, 85, 6, 3790); - add_location(p1, file$s, 86, 6, 3833); - add_location(p2, file$s, 87, 6, 3878); - add_location(p3, file$s, 88, 6, 3921); + add_location(h4, file$t, 84, 6, 3758); + add_location(p0, file$t, 85, 6, 3790); + add_location(p1, file$t, 86, 6, 3833); + add_location(p2, file$t, 87, 6, 3878); + add_location(p3, file$t, 88, 6, 3921); attr_dev(section, "class", "main-stats svelte-1tyjf3q"); - add_location(section, file$s, 83, 4, 3723); + add_location(section, file$t, 83, 4, 3723); attr_dev(main, "class", "svelte-1tyjf3q"); - add_location(main, file$s, 58, 2, 1823); + add_location(main, file$t, 58, 2, 1823); }, m: function mount(target, anchor) { insert_dev(target, main, anchor); @@ -2830,7 +2830,7 @@ var app = (function () { return block; } - function create_fragment$v(ctx) { + function create_fragment$w(ctx) { let div; let if_block = /*user*/ ctx[0] !== undefined && create_if_block$b(ctx); @@ -2839,7 +2839,7 @@ var app = (function () { div = element("div"); if (if_block) if_block.c(); attr_dev(div, "class", "outer svelte-1tyjf3q"); - add_location(div, file$s, 56, 0, 1774); + add_location(div, file$t, 56, 0, 1774); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -2872,7 +2872,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$v.name, + id: create_fragment$w.name, type: "component", source: "", ctx @@ -2881,7 +2881,7 @@ var app = (function () { return block; } - function instance$v($$self, $$props, $$invalidate) { + function instance$w($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('GenerateUserDisplay', slots, []); let { user } = $$props; @@ -3028,13 +3028,13 @@ var app = (function () { class GenerateUserDisplay extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$v, create_fragment$v, safe_not_equal, { user: 0, primary: 4 }); + init$2(this, options, instance$w, create_fragment$w, safe_not_equal, { user: 0, primary: 4 }); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "GenerateUserDisplay", options, - id: create_fragment$v.name + id: create_fragment$w.name }); } @@ -3055,6 +3055,285 @@ var app = (function () { } } + /* src/pieces/chat/tmp_debug.svelte generated by Svelte v3.53.1 */ + + const file$s = "src/pieces/chat/tmp_debug.svelte"; + + function create_fragment$v(ctx) { + let div; + let p; + let t1; + let button0; + let t3; + let button1; + let t5; + let button2; + let t7; + let button3; + let t9; + let button4; + let t11; + let button5; + let t13; + let button6; + let t15; + let button7; + let t17; + let button8; + let t19; + let button9; + let t21; + let button10; + let mounted; + let dispose; + + const block = { + c: function create() { + div = element("div"); + p = element("p"); + p.textContent = "temp, for testing :"; + t1 = space(); + button0 = element("button"); + button0.textContent = "close"; + t3 = space(); + button1 = element("button"); + button1.textContent = "home"; + t5 = space(); + button2 = element("button"); + button2.textContent = "room"; + t7 = space(); + button3 = element("button"); + button3.textContent = "new"; + t9 = space(); + button4 = element("button"); + button4.textContent = "settings"; + t11 = space(); + button5 = element("button"); + button5.textContent = "room_set"; + t13 = space(); + button6 = element("button"); + button6.textContent = "protected"; + t15 = space(); + button7 = element("button"); + button7.textContent = "create"; + t17 = space(); + button8 = element("button"); + button8.textContent = "mute"; + t19 = space(); + button9 = element("button"); + button9.textContent = "user from settings"; + t21 = space(); + button10 = element("button"); + button10.textContent = "user from room_set"; + add_location(p, file$s, 8, 1, 209); + add_location(button0, file$s, 9, 1, 237); + add_location(button1, file$s, 10, 1, 305); + add_location(button2, file$s, 11, 1, 372); + add_location(button3, file$s, 12, 1, 439); + add_location(button4, file$s, 13, 1, 505); + add_location(button5, file$s, 14, 1, 576); + add_location(button6, file$s, 15, 1, 647); + add_location(button7, file$s, 16, 1, 719); + add_location(button8, file$s, 17, 1, 788); + add_location(button9, file$s, 18, 1, 855); + add_location(button10, file$s, 22, 1, 975); + set_style(div, "display", "flex"); + set_style(div, "flex-direction", "column"); + set_style(div, "font-size", "12px"); + set_style(div, "position", "fixed"); + set_style(div, "top", "20px"); + set_style(div, "left", "20px"); + set_style(div, "background-color", "white"); + add_location(div, file$s, 7, 0, 73); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + append_dev(div, p); + append_dev(div, t1); + append_dev(div, button0); + append_dev(div, t3); + append_dev(div, button1); + append_dev(div, t5); + append_dev(div, button2); + append_dev(div, t7); + append_dev(div, button3); + append_dev(div, t9); + append_dev(div, button4); + append_dev(div, t11); + append_dev(div, button5); + append_dev(div, t13); + append_dev(div, button6); + append_dev(div, t15); + append_dev(div, button7); + append_dev(div, t17); + append_dev(div, button8); + append_dev(div, t19); + append_dev(div, button9); + append_dev(div, t21); + append_dev(div, button10); + + if (!mounted) { + dispose = [ + listen_dev(button0, "click", /*click_handler*/ ctx[2], false, false, false), + listen_dev(button1, "click", /*click_handler_1*/ ctx[3], false, false, false), + listen_dev(button2, "click", /*click_handler_2*/ ctx[4], false, false, false), + listen_dev(button3, "click", /*click_handler_3*/ ctx[5], false, false, false), + listen_dev(button4, "click", /*click_handler_4*/ ctx[6], false, false, false), + listen_dev(button5, "click", /*click_handler_5*/ ctx[7], false, false, false), + listen_dev(button6, "click", /*click_handler_6*/ ctx[8], false, false, false), + listen_dev(button7, "click", /*click_handler_7*/ ctx[9], false, false, false), + listen_dev(button8, "click", /*click_handler_8*/ ctx[10], false, false, false), + listen_dev(button9, "click", /*click_handler_9*/ ctx[11], false, false, false), + listen_dev(button10, "click", /*click_handler_10*/ ctx[12], false, false, false) + ]; + + mounted = true; + } + }, + p: noop, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$v.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$v($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Tmp_debug', slots, []); + let { layout = "" } = $$props; + let { layouts = [] } = $$props; + const writable_props = ['layout', 'layouts']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + const click_handler = function () { + $$invalidate(0, layout = "close"); + }; + + const click_handler_1 = function () { + $$invalidate(0, layout = "home"); + }; + + const click_handler_2 = function () { + $$invalidate(0, layout = "room"); + }; + + const click_handler_3 = function () { + $$invalidate(0, layout = "new"); + }; + + const click_handler_4 = function () { + $$invalidate(0, layout = "settings"); + }; + + const click_handler_5 = function () { + $$invalidate(0, layout = "room_set"); + }; + + const click_handler_6 = function () { + $$invalidate(0, layout = "protected"); + }; + + const click_handler_7 = function () { + $$invalidate(0, layout = "create"); + }; + + const click_handler_8 = function () { + $$invalidate(0, layout = "mute"); + }; + + const click_handler_9 = function () { + $$invalidate(1, layouts = ["settings", "settings"]); + $$invalidate(0, layout = "user"); + }; + + const click_handler_10 = function () { + $$invalidate(1, layouts = ["room_set", "room_set"]); + $$invalidate(0, layout = "user"); + }; + + $$self.$$set = $$props => { + if ('layout' in $$props) $$invalidate(0, layout = $$props.layout); + if ('layouts' in $$props) $$invalidate(1, layouts = $$props.layouts); + }; + + $$self.$capture_state = () => ({ layout, layouts }); + + $$self.$inject_state = $$props => { + if ('layout' in $$props) $$invalidate(0, layout = $$props.layout); + if ('layouts' in $$props) $$invalidate(1, layouts = $$props.layouts); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [ + layout, + layouts, + click_handler, + click_handler_1, + click_handler_2, + click_handler_3, + click_handler_4, + click_handler_5, + click_handler_6, + click_handler_7, + click_handler_8, + click_handler_9, + click_handler_10 + ]; + } + + class Tmp_debug extends SvelteComponentDev { + constructor(options) { + super(options); + init$2(this, options, instance$v, create_fragment$v, safe_not_equal, { layout: 0, layouts: 1 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Tmp_debug", + options, + id: create_fragment$v.name + }); + } + + get layout() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set layout(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get layouts() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set layouts(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + /* src/pieces/chat/Chat_box_css.svelte generated by Svelte v3.53.1 */ const file$r = "src/pieces/chat/Chat_box_css.svelte"; @@ -12569,7 +12848,7 @@ var app = (function () { /* src/pieces/chat/Chat_layouts.svelte generated by Svelte v3.53.1 */ - // (65:29) + // (66:29) function create_if_block_9$1(ctx) { let userlayout; let updating_layout; @@ -12626,14 +12905,14 @@ var app = (function () { block, id: create_if_block_9$1.name, type: "if", - source: "(65:29) ", + source: "(66:29) ", ctx }); return block; } - // (62:29) + // (63:29) function create_if_block_8$1(ctx) { let mutelayout; let updating_layout; @@ -12690,14 +12969,14 @@ var app = (function () { block, id: create_if_block_8$1.name, type: "if", - source: "(62:29) ", + source: "(63:29) ", ctx }); return block; } - // (59:31) + // (60:31) function create_if_block_7$1(ctx) { let createlayout; let updating_layout; @@ -12758,14 +13037,14 @@ var app = (function () { block, id: create_if_block_7$1.name, type: "if", - source: "(59:31) ", + source: "(60:31) ", ctx }); return block; } - // (56:34) + // (57:34) function create_if_block_6$1(ctx) { let protectedlayout; let updating_layout; @@ -12826,14 +13105,14 @@ var app = (function () { block, id: create_if_block_6$1.name, type: "if", - source: "(56:34) ", + source: "(57:34) ", ctx }); return block; } - // (53:33) + // (54:33) function create_if_block_5$1(ctx) { let roomsetlayout; let updating_layout; @@ -12894,14 +13173,14 @@ var app = (function () { block, id: create_if_block_5$1.name, type: "if", - source: "(53:33) ", + source: "(54:33) ", ctx }); return block; } - // (50:33) + // (51:33) function create_if_block_4$1(ctx) { let settingslayout; let updating_layout; @@ -12962,14 +13241,14 @@ var app = (function () { block, id: create_if_block_4$1.name, type: "if", - source: "(50:33) ", + source: "(51:33) ", ctx }); return block; } - // (47:28) + // (48:28) function create_if_block_3$1(ctx) { let newlayout; let updating_layout; @@ -13026,14 +13305,14 @@ var app = (function () { block, id: create_if_block_3$1.name, type: "if", - source: "(47:28) ", + source: "(48:28) ", ctx }); return block; } - // (44:29) + // (45:29) function create_if_block_2$1(ctx) { let roomlayout; let updating_layout; @@ -13090,14 +13369,14 @@ var app = (function () { block, id: create_if_block_2$1.name, type: "if", - source: "(44:29) ", + source: "(45:29) ", ctx }); return block; } - // (41:30) + // (42:30) function create_if_block_1$3(ctx) { let closelayout; let updating_layout; @@ -13153,14 +13432,14 @@ var app = (function () { block, id: create_if_block_1$3.name, type: "if", - source: "(41:30) ", + source: "(42:30) ", ctx }); return block; } - // (38:1) {#if layout === "home"} + // (39:1) {#if layout === "home"} function create_if_block$9(ctx) { let homelayout; let updating_layout; @@ -13216,14 +13495,14 @@ var app = (function () { block, id: create_if_block$9.name, type: "if", - source: "(38:1) {#if layout === \\\"home\\\"}", + source: "(39:1) {#if layout === \\\"home\\\"}", ctx }); return block; } - // (36:0) + // (37:0) function create_default_slot$2(ctx) { let current_block_type_index; let if_block; @@ -13334,7 +13613,7 @@ var app = (function () { block, id: create_default_slot$2.name, type: "slot", - source: "(36:0) ", + source: "(37:0) ", ctx }); @@ -13343,6 +13622,10 @@ var app = (function () { function create_fragment$h(ctx) { let chatbox; + let t; + let debug_1; + let updating_layout; + let updating_layouts; let current; chatbox = new Chat_box_css({ @@ -13355,15 +13638,41 @@ var app = (function () { $$inline: true }); + function debug_1_layout_binding(value) { + /*debug_1_layout_binding*/ ctx[13](value); + } + + function debug_1_layouts_binding(value) { + /*debug_1_layouts_binding*/ ctx[14](value); + } + + let debug_1_props = {}; + + if (/*layout*/ ctx[1] !== void 0) { + debug_1_props.layout = /*layout*/ ctx[1]; + } + + if (/*layouts*/ ctx[2] !== void 0) { + debug_1_props.layouts = /*layouts*/ ctx[2]; + } + + debug_1 = new Tmp_debug({ props: debug_1_props, $$inline: true }); + binding_callbacks.push(() => bind(debug_1, 'layout', debug_1_layout_binding)); + binding_callbacks.push(() => bind(debug_1, 'layouts', debug_1_layouts_binding)); + const block = { c: function create() { create_component(chatbox.$$.fragment); + t = space(); + create_component(debug_1.$$.fragment); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); }, m: function mount(target, anchor) { mount_component(chatbox, target, anchor); + insert_dev(target, t, anchor); + mount_component(debug_1, target, anchor); current = true; }, p: function update(ctx, [dirty]) { @@ -13371,23 +13680,42 @@ var app = (function () { if (dirty & /*layout*/ 2) chatbox_changes.layout = /*layout*/ ctx[1]; if (dirty & /*color*/ 1) chatbox_changes.color = /*color*/ ctx[0]; - if (dirty & /*$$scope, layout, layouts*/ 65542) { + if (dirty & /*$$scope, layout, layouts*/ 262150) { chatbox_changes.$$scope = { dirty, ctx }; } chatbox.$set(chatbox_changes); + const debug_1_changes = {}; + + if (!updating_layout && dirty & /*layout*/ 2) { + updating_layout = true; + debug_1_changes.layout = /*layout*/ ctx[1]; + add_flush_callback(() => updating_layout = false); + } + + if (!updating_layouts && dirty & /*layouts*/ 4) { + updating_layouts = true; + debug_1_changes.layouts = /*layouts*/ ctx[2]; + add_flush_callback(() => updating_layouts = false); + } + + debug_1.$set(debug_1_changes); }, i: function intro(local) { if (current) return; transition_in(chatbox.$$.fragment, local); + transition_in(debug_1.$$.fragment, local); current = true; }, o: function outro(local) { transition_out(chatbox.$$.fragment, local); + transition_out(debug_1.$$.fragment, local); current = false; }, d: function destroy(detaching) { destroy_component(chatbox, detaching); + if (detaching) detach_dev(t); + destroy_component(debug_1, detaching); } }; @@ -13481,11 +13809,22 @@ var app = (function () { $$invalidate(1, layout); } + function debug_1_layout_binding(value) { + layout = value; + $$invalidate(1, layout); + } + + function debug_1_layouts_binding(value) { + layouts = value; + $$invalidate(2, layouts); + } + $$self.$$set = $$props => { if ('color' in $$props) $$invalidate(0, color = $$props.color); }; $$self.$capture_state = () => ({ + Debug: Tmp_debug, ChatBox: Chat_box_css, CloseLayout: Layout_close, HomeLayout: Layout_home, @@ -13536,7 +13875,9 @@ var app = (function () { protectedlayout_layout_binding, createlayout_layout_binding, mutelayout_layout_binding, - userlayout_layout_binding + userlayout_layout_binding, + debug_1_layout_binding, + debug_1_layouts_binding ]; } diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js.map b/srcs/requirements/svelte/api_front/public/build/bundle.js.map index f7a1bbcc..9795f7dd 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js.map +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

We are sorry!

\n

This isn't a url that we use.

\n\n

Go home you're drunk.

\n\n

Take me home →

\n
\n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
\n \"Potato (push('/'))}>\n

Potato Pong

\n \n
\n\n\n\n\n\n\n\n","\n\n\n
\n {#if user !== undefined}\n
\n \n \n \"default\n
{user.username}
\n
Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
\n
\n

Match Statistics

\n

Total: {user.stats.totalGame}

\n

Victories: {user.stats.winGame}

\n

Losses: {user.stats.loseGame}

\n

Draws: {user.stats.drawGame}

\n
\n
\n {/if}\n
\n\n\n\n\n","\n\n\n
\n\t\n
\n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
\n\t\n
\n\n\n\n\n","\n\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t

list of your rooms :

\n\t\t
\n\t\t\t
\n\t\t\t\t

/ you have no chat room yet /

\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n
\n\n\n\n","\n\n
\n\t

{name}

\n\t

\n
\n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t
\n\t\t\t{#each msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
\n\t
\n\n\t\n\t
\n\t\t
\n\t
\n\n\t\n\t\n\n
\n\n\n\n\n","\n\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t\n\t\t

join room :

\n\t\t
\n\t\t\t
\n\t\t\t\t

/ there are no public rooms yet /

\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n
\n\n\n\n","\n\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t

blocked users :

\n\t\t
\n\t\t\t
\n\t\t\t\t

/ you have blocked no one /

\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n
\n\n\n\n\n","\n\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t\n\t\t

room users :

\n\t\t
\n\t\t\t
\n\t\t\t\t

/ there are no public rooms yet /

\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n\n
\n\n\n\n\n","\n\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t

this room is protected

\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n\n
\n\n\n\n\n","\n\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t

confirm password :

\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t
\n\n\n
\n\n\n\n\n","\n\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
\n\t\t

mute this user for a time :

\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t
\n\n\n
\n\n\n\n\n","\n\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
\n\t\t

user options :

\n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
\n\n
\n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
\n \n {#if user !== undefined}\n \n {:else}\n \n

Sorry

\n
Failed to load current
\n {/if}\n
\n\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n
testing when there's tons of stuff
\n\n\n\n\n\n","
\n \n
\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
\n

Look! You can change stuff

\n
\n \n
\n
\n
New Username
\n \n \n \n\t\t
{success.username}
\n
{errors.username}
\n
\n
\n
Set Two Factor Authentication
\n \n
{errors.checkbox}
\n
\n \n
\n
\n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
\n \n \n
\n
Pick a new Avatar
\n \n
{errors.avatar}
\n
\n \n
\n
\n
\n\n
\n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

Sorry

\n
Failed to load user {aUsername}
\n{/if}\n\n\n\n","\n\n\n\n
\n\n
\n

All Users

\n {#if allUsers === undefined}\n
Failed to load all users
\n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
viewAUser(aUser)}>{aUser.username}
\n \n
{aUser.status}
\n
\n {/each}\n {/if}\n\n
\n\n\n
\n\n

Main Display

\n\n \n \n \n \n {#if userBeingViewed}\n
{userBeingViewed.username}
\n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
\n
\n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
\n\n\n\n\n
\n \n
\n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
\n

Potato Pong

\n \n

\n
Welcome to
\n
Potato Pong
\n

\n
\n\n\n\n\n\n\n\n","\n\n\n
\n

2FA Sign In

\n

use google authenticator

\n {#await fetchQrCodeImg}\n

Please Wait...

\n {:then data}\n \n \"A\n
\n \n \n
\n {#if wrongCode}\n \n
\n {wrongCode}\n
\n {/if}\n {:catch}\n

Unable to get QrCodeImg

\n {/await}\n
\n\n\n","\n\n
\n

You're not supposed to be here...

\n \n
\n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
\n\n
\n\n\t{#if showMatchEnded === true}\n\t\t
\n\t\t\t

{errorMessageWhenAttemptingToGetATicket}

\n\t\t
\n\t{/if}\n\t{#if showError === true}\n\t\t
\n\t\t\t
\n\t\t\t\tError\n\t\t\t\t\t\t

{errorMessageWhenAttemptingToGetATicket}

\n\t\t\t
\n\t\t
\n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
\n\t\t\t\n\t\t
\n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
\n\t\t\t
\n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

{waitingMessage}

\n\t\t\t
\n\t\t
\n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

sound :

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

Currently, no one asked to play with you.

\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t{/if}\n\t{/if}\n\n
\n\n\n","\n\n
\n\n
\n\t
\n\t\t
\n\t\t\t

Ranking

\n\t\t
\n\t
\n\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
#UsernameWinLoseDrawGames Played
{i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
\n\t\t
\n\t
\n
\n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA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MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,M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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t

    confirm password :

    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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A;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UA8BO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OA7BN,UAAY,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACZ,UA2BQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OA1BP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;;OAIhC,UAAoC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;qEAvKN,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCWgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGkC,QAElC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAIqD,aAEpD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAMO,cAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACO,iBAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAEE,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAIC,YAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAEE,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAvCwB,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe7E,CAAA,IAAA,SAAA,YAAA,GAAI,QAAK,UAAU,IAAAZ,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBlB,CAAA,IAAA,SAAA,YAAA,GAAI,QAAK,UAAU,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OArC1B,UAgDK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;OAvBJ,UAqBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OApBJ,UAAqC,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;qEAvBN,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe7E,GAAA,aAAA,GAAI,QAAK,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBlB,GAAA,aAAA,GAAI,QAAK,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA9Cd,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IAEhB,CAAA,IAAA,IAAI,GAAG,MAAM,CAAA;IACb,CAAA,IAAA,KAAK,GAAG,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICmEY,CAAA,IAAA,gBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHT,CAAA,IAAA,gBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHP,CAAA,IAAA,kBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,oBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHN,CAAA,IAAA,qBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,uBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHX,CAAA,IAAA,mBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,qBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,CAAA,IAAA,oBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,sBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHd,CAAA,IAAA,eAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,CAAA,IAAA,gBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAPnC,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGZ,EAAA,eAAA,GAAM,QAAK,OAAO,EAAA,OAAA,CAAA,CAAA;IAGlB,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGjB,EAAA,eAAA,GAAM,QAAK,KAAK,EAAA,OAAA,CAAA,CAAA;IAGhB,EAAA,eAAA,GAAM,QAAK,UAAU,EAAA,OAAA,CAAA,CAAA;IAGrB,EAAA,eAAA,GAAM,QAAK,UAAU,EAAA,OAAA,CAAA,CAAA;IAGrB,EAAA,eAAA,GAAM,QAAK,WAAW,EAAA,OAAA,CAAA,CAAA;IAGtB,EAAA,eAAA,GAAM,QAAK,QAAQ,EAAA,OAAA,CAAA,CAAA;IAGnB,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGjB,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA7BX,GAAM,CAAA,CAAA,CAAA;yBAAS,GAAK,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEAApB,GAAM,CAAA,CAAA,CAAA,CAAA;kEAAS,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAvBzB,KAAK,EAAA,GAAA,OAAA,CAAA;IACZ,CAAA,IAAA,IAAI,GAAG,EAAE,CAAA;IACT,CAAA,IAAA,KAAK,GAAG,KAAK,CAAA;IACb,CAAA,IAAA,MAAM,GAAG,OAAO,CAAA;SAChB,OAAO,GAAA,CAAI,MAAM,EAAE,MAAM,CAAA,CAAA;;;;IAIpB,CAAA,SAAA,WAAW,CAAC,MAAM,EAAA;IAEtB,EAAA,IAAA,MAAM,KAAK,OAAO,EAAA,OAAA;UAElB,MAAM,KAAK,OAAO,CAAC,CAAC,CAAA,EAAA,OAAA;IAEpB,EAAA,IAAA,MAAM,KAAK,OAAO,CAAC,CAAC,CAAA,EAAA,YAAA,CAAA,CAAA,EACvB,OAAO,GAAI,CAAA,MAAM,EAAE,MAAM,yBAEzB,OAAO,GAAA,CAAI,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAE3B,WAAW,CAAC,MAAM,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCCaN,GAAK,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;kEAAL,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAlDT,CAAA,IAAA,EAAA,KAAK,GAAG,aAAa,EAAA,GAAA,OAAA,CAAA;IAM1B,CAAA,MAAA,MAAM,GAAGc,MAAE,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC/E,CAAA,EAAA,EAAA,IAAI,EAAE,OAAR,EAAA,CAAA,CAAA;;IAEC,CAAA,OAAO,CAAC,KAAK,IAAA;MACZ,MAAM,CAAC,EAAE,CAAC,SAAS,EAAA,YAAA;OAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;;;MAElC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAA,YAAA;OACrB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA,CAAA;;;MAErC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAA,YAAA;OACxB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAA,CAAA;;;MAEtC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAA,YAAA;OAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAA,CAAA;;;MAExC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAA,YAAA;OAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA,CAAA;;;MAE9B,MAAM,CAAC,EAAE,CAAC,WAAW,EAAA,YAAA;OACpB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;;;MAElC,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAA,YAAA;OAC5B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAA,CAAA;;;MAE1C,MAAM,CAAC,EAAE,CAAC,cAAc,EAAA,YAAA;OACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA,CAAA;;;MAErC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAA,YAAA;OAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAA,CAAA;;;MAExC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAA,YAAA;OAC3B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAA,CAAA;;;MAEzC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAA,YAAA;OACf,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA,CAAA;;;MAE7B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAA,YAAA;OACf,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCpB3B,UAAa,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACb,UAAgC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAJK,IAAI,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IADtC,EAAA,aAAA,GAAI,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAFzB,UASK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAEL,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAtDtC,IAAI,CAAA;;KAER,OAAO,CAAA,YAAA;;sBAEL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCb1B,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFCWU,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,CAAA;6CAAc,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;mDAAiB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;OAA7D,UAEQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uHAFO,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,EAAA;;;;;8CAAc,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;oDAAiB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAXhD,CAAA,IAAA,EAAA,IAAI,GAAU,SAAS,EAAA,GAAA,OAAA,CAAA;IACvB,CAAA,IAAA,EAAA,IAAI,GAAW,KAAK,EAAA,GAAA,OAAA,CAAA;IACpB,CAAA,IAAA,EAAA,OAAO,GAAW,KAAK,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBC+IH,iBAAe,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARlB,CAAA,IAAA,QAAA,eAAA,GAAO,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;IAChB,CAAA,IAAA,QAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;IAKf,CAAA,IAAA,SAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qGAPgB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;OAL9D,UAeM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAdJ,UAOK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OANH,UAAoC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAGpC,UAAsF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAb,GAAA,eAAA,CAAA,MAAA,UAAA,GAAG,IAAC,QAAQ,CAAA,CAAA;;OACvF,UAA4C,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAC1C,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAE3C,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHH,UAAkE,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAClE,UAAkE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAR,GAAA,MAAA,CAAA,OAAA,WAAA,GAAG,IAAC,GAAG,CAAA;;OACjE,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;wEAZb,GAAe,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;4IAKQ,GAAO,CAAA,CAAA,CAAA,CAAA,EAAA;;;;IAAe,GAAA,IAAA,KAAA,WAAA,CAAA,IAAA,MAAA,CAAA,KAAA,aAAA,GAAG,IAAC,QAAQ,EAAA;IAAZ,IAAA,eAAA,CAAA,MAAA,UAAA,GAAG,IAAC,QAAQ,CAAA,CAAA;;;IACjE,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,eAAA,EAAA,KAAA,QAAA,MAAA,QAAA,eAAA,GAAO,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAChB,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,QAAA,MAAA,QAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAIuB,IAAA,MAAA,CAAA,OAAA,WAAA,GAAG,IAAC,GAAG,CAAA;;;IAC7C,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,SAAA,MAAA,SAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DASZ,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;OAA/B,UAAmD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;sFAA1B,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;gBAUkC,eAAa,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAFxD,CAAA,IAAA,QAAA,cAAA,GAAM,IAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;IAThC,CAAA,IAAA,QAAA,cAAA,GAAM,QAAK,SAAS,IAAAd,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;IAWT,IAAA,IAAA,gBAAA,GAAS,QAAK,SAAS;UAAG,SAAS;UAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OARjE,UASM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OANJ,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHH,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OACzC,UAA0C,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;OAC1C,UAAuC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;qEANX,GAAY,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;IAHvC,GAAA,eAAA,GAAM,QAAK,SAAS,EAAA;;;;;;;;;;;;;IASD,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,QAAA,MAAA,QAAA,cAAA,GAAM,IAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAErB,GAAA,IAAA,KAAA,iBAAA,CAAA,EAAA,cAAA,CAAA,IAAA,iBAAA,GAAS,QAAK,SAAS;SAAG,SAAS;SAAG,WAAW,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAnCvE,UAwCM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAvCJ,UAAkC,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAClC,UAoCK,CAAA,IAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA/JD,IAAI,CAAA;IACJ,CAAA,IAAA,MAAM,EAAE,SAAS,CAAA;IACjB,CAAA,IAAA,mBAAmB,GAAG,KAAK,CAAA;;;IAG3B,CAAA,IAAA,GAAG,KAAK,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAA,CAAA;;SAChC,OAAO,CAAA;WACL,MAAM,GAAA,EAAK,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAA;IACnD,CAAA,IAAA,OAAO,KAAI,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAA;;KAEvC,OAAO,CAAA,YAAA;MACL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;IAGlB,EAAA,IAAA,IAAI,KAAK,SAAS,EAAA;OACpB,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAA,CAAA;;;;sBAG/E,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA,CAAA;;IACvB,EAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAA,CAAA;IAEzB,EAAA,YAAA,CAAA,CAAA,EAAA,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,sBAAsB,EAAA,GAAA,CAAA,CAAA;;;;;IAM/B,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC9G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACH,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;IAEV,GAAA,CAAA,CAAA,KAAK,CAAO,MAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,uCAAuC,EAAA,MAAA,CAAA,CAAA,CAAA;;;;;;;;WAWlE,eAAe,GAAA,YAAA;;;IAGd,EAAA,IAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAO,KAAA,EAAE,IAAK,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,sBAAsB,EAAA;uBACzE,MAAM,CAAC,QAAQ,GAAG,sBAAsB,EAAA,MAAA,CAAA,CAAA;;IAGnC,GAAA,MAAA,IAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAO,KAAA,EAAE,IAAK,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,sBAAsB,EAAA;IAC/E,GAAA,YAAA,CAAA,CAAA,EAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAA,GAAA,CAAA,CAAA;;uBAGxB,MAAM,CAAC,QAAQ,GAAG,EAAE,EAAA,MAAA,CAAA,CAAA;;;YAEnB,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,YAAA,CAAA,EAAA;IACzE,GAAA,MAAM,EAAE,OAAO;OACf,OAAO,EAAA,EACP,cAAc,EAAE,kBAAlB,EAAA;OAEE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;QACpB,UAAU,EAAE,GAAG,CAAC,QAAQ;QACxB,wBAAwB,EAAG,GAAG,CAAC,GAAA;;IAG/B,GAAA,CAAA,CAAA,IAAI,CAAE,QAAQ,IAAA;WACV,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA,YAAA,CAAA,CAAA,EAC1B,OAAO,CAAC,QAAQ,GAAG,8BAA8B,EACzC,OAAA,CAAA,CAAA,MAAA,IAAA,QAAQ,CAAC,MAAM,KAAK,GAAG,EAC/B,IAAI,CAAC,MAAM,CAAA,CAAA,MAAA,YAAA,CAAA,CAAA,EAEX,MAAM,CAAC,QAAQ,GAAG,sBAAsB,EAAA,MAAA,CAAA,CAAA;IAGzC,GAAA,CAAA,CAAA,KAAK,CAAE,GAAG,IAAA,YAAA,CAAA,CAAA,EAAK,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAA,MAAA,CAAA,CAAA,CAAA;;;;WAM9B,YAAY,GAAA,YAAA;sBAChB,MAAM,CAAC,MAAM,GAAG,EAAE,EAAA,MAAA,CAAA,CAAA;;IACd,EAAA,IAAA,SAAS,KAAK,SAAS,EAAA;uBACzB,MAAM,CAAC,MAAM,GAAG,0BAA0B,EAAA,MAAA,CAAA,CAAA;;;;IAGzC,EAAA,MAAA,IAAI,OAAO,QAAQ,EAAA,CAAA;IACzB,EAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA,CAAA,CAAA;;;MAG/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,CAAA;;YAEV,wBAAwB,GAAG,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAEpG,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAG,MAAM,EACf,IAAI,EAAG,IAAI,EAAA,CAAA,CAAA;IAEN,EAAA,MAAA,kBAAkB,SAAS,wBAAwB,CAAA;;UACrD,kBAAkB,CAAC,EAAE,KAAK,IAAI,EAAA;IACjC,GAAA,mBAAmB,GAAG,IAAI,CAAA;uBAC1B,OAAO,CAAC,MAAM,GAAG,8BAA8B,EAAA,OAAA,CAAA,CAAA;;IAG/C,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAA,MAAA,CAAA,CAAA;;;IAGxC,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC7G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACH,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;IAEb,GAAA,CAAA,CAAA,KAAK,CAAO,MAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,uCAAuC,EAAA,MAAA,CAAA,CAAA,CAAA;;;;;;;;;;IAec,EAAA,GAAG,CAAC,QAAQ,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;IAM3B,EAAA,GAAG,CAAC,GAAG,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;MAiBlC,SAAS,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBC5G3C,sBAAoB,CAAA,CAAA;+BAAC,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;OADnC,UAAa,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACb,UAAyC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;mEAAf,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAJY,IAAI,EAAA,CAAA;;kBAAnB,GAAI,CAAA,CAAA,CAAA,KAAA,KAAA,CAAA,EAAA;gDAAJ,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;oDAAJ,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IADjC,EAAA,aAAA,GAAI,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAzCV,SAAS,EAAA,GAAA,OAAA,CAAA;SAChB,IAAI,CAAA;;KAER,OAAO,CAAA,YAAA;IACL,EAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAE,SAAS,CAAA,CAAA;;;sBAEjD,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAyB,sBAAA,EAAA,SAAS,CAChH,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;IAalB,CAAA,MAAA,UAAU,SAAS,WAAW,IAAA;IAClC,EAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAE,UAAU,CAAA,CAAA;;;sBAEzD,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAyB,sBAAA,EAAA,UAAU,CACjH,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;MAkBQ,IAAI,GAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCCyGzB,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;oCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;kCAAC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;mCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OARN,UAAgD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAUS,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,QAAQ,GAAA,EAAA,CAAA;;;;IAIzC,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJxC,UAA2E,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAI3E,UAA8C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAC9C,UAAG,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IALoD,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAIzC,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiBpC,CAAA,IAAA,QAAA,uBAAA,GAAe,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;IACL,IAAA,SAAA,sBAAA,GAAe,IAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;OADjD,UAAoC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IAA9B,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,uBAAA,CAAA,KAAA,QAAA,MAAA,QAAA,uBAAA,GAAe,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;IACL,GAAA,IAAA,KAAA,uBAAA,CAAA,EAAA,oBAAA,CAAA,SAAA,uBAAA,GAAe,IAAC,QAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGqC,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IApC7F,EAAA,iBAAA,GAAQ,QAAK,SAAS,EAAA,OAAAC,mBAAA,CAAA;;;;;;yCA+BtB,GAAe,CAAA,CAAA,CAAA,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAnCxB,UA0GK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAxGH,UAsBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OArBH,UAAiB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;OAwBnB,UA8EK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA5EH,UAAoB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;+BAMf,GAAe,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SArJlB,MAAM,GAAA,EAAI,aAAa,EAAE,EAAE,EAAA,CAAA;IAC3B,CAAA,IAAA,GAAG,KAAI,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAA,CAAA;SAE3C,IAAI,CAAA;SACJ,QAAQ,CAAA;SACR,SAAS,CAAA;IACT,CAAA,IAAA,YAAY,EAAE,gBAAgB,CAAA;SAC9B,eAAe,CAAA;;KAInB,OAAO,CAAA,YAAA;;;MAGL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;;;MAOtB,SAAS,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACnF,yBAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;MAKtB,YAAY,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACtF,uBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;MAMpB,gBAAgB,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC1F,wBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;sBAKpB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAClF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;WAOhB,eAAe,GAAA,YAAA;sBACnB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAClF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;WAKhB,iBAAiB,GAAA,YAAA;MACrB,SAAS,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACnF,yBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;WAIhB,mBAAmB,GAAA,YAAA;MACvB,YAAY,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACtF,uBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;SAIlB,iBAAiB,CAAA;;IACf,CAAA,MAAA,iBAAiB,SAAS,uBAAuB,IAAA;MACrD,GAAG,CAAC,cAAc,GAAG,EAAE,CAAA;MACvB,MAAM,CAAC,aAAa,GAAG,EAAE,CAAA;IACrB,EAAA,IAAA,KAAK,GAAG,KAAK,CAAA;;UACb,uBAAuB,KAAK,IAAI,CAAC,QAAQ,EAAA;OAC3C,MAAM,CAAC,aAAa,GAAG,4BAA4B,CAAA;IACnD,GAAA,KAAK,GAAG,KAAK,CAAA;;OAEb,GAAG,CAAC,cAAc,GAAG,uBAAuB,CAAA;IAC5C,GAAA,KAAK,GAAG,IAAI,CAAA;;;UAGV,KAAK,EAAA;IACP,GAAA,iBAAiB,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,yBAAA,CAAA,EAAA;IAC1F,IAAA,MAAM,EAAG,MAAM;QACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;QAC3C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;SACpB,kBAAkB,EAAE,GAAG,CAAC,cAAc;IACtC,KAAA,QAAQ,EAAE,GAAtB;;IAGS,IAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;;IAKlB,CAAA,MAAA,SAAS,SAAS,KAAK,IAAA;IAC3B,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;;;;;;;IASnB,CAAA,MAAA,UAAU,SAAS,YAAY,IAAA;;;;;;;;;;IAwBK,CAAA,MAAA,aAAA,GAAA,KAAA,IAAA,SAAS,CAAC,KAAK,CAAA,CAAA;mCAyBZ,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC9KzF;IACO,MAAM,MAAM,GAAG,UAAU,CAAC;AACjC;IACO,MAAM,aAAa,GAAG;IAC7B,EAAE,GAAG,EAAE,cAAc;IACrB,EAAE,WAAW,EAAE,eAAe;IAC9B,EAAE,UAAU,EAAE,cAAc;IAC5B,EAAE,GAAG,EAAE,QAAQ;IACf,CAAC,CAAC;AACF;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;;;;;;;;;;;;;;wBC1BkB,aAAa,EAAA,MAAA,EAAA;;;;;;;;;;;;;;;;;;OAD/B,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC8EG,GAAA,QAAA,CAAA,QAAA,EAAA,OAAA,EAAA,MAAM,CAAC,UAAU,CAAA,CAAA;IAChB,GAAA,QAAA,CAAA,QAAA,EAAA,QAAA,EAAA,MAAM,CAAC,WAAW,CAAA,CAAA;;;;;;;;OAH3B,UAIS,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAnGJ,MAAM,CAAA;;;IAEL,CAAA,IAAA,MAAM,GAAG,KAAK,CAAA;;;;;IAIZ,CAAA,MAAA,GAAG,OAAO,KAAK,EAAA,CAAA;;KACrB,GAAG,CAAC,GAAG,GAAG,qBAAqB,CAAA;;IAC/B,CAAA,GAAG,CAAC,MAAM,GAAA,MAAA;IACR,EAAA,MAAM,GAAG,IAAI,CAAA;;;;;KAef,OAAO,CAAA,MAAA;;IAID,EAAA,MAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAA,CAAA;;;IAEhC,EAAA,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAA;;IAC7B,EAAA,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAA;;;;;;;IAU3B,EAAA,IAAA,OAAO,GAAI,CAAA,MAAM,CAAC,MAAM,GAAI,GAAG,CAAC,MAAM,GAAG,UAAU,IAAI,YAAY,GAAG,CAAC,KAAO,YAAY,CAAA;;;;;;UAiB1F,MAAM,GAAA,EAAK,OAAO,GAAG,GAAG,CAAA,CAAA;;UACxB,MAAM,GAAA,EAAK,OAAO,GAAG,GAAG,CAAA,CAAA;IACxB,EAAA,IAAA,CAAC,GAAG,MAAM,CAAA;IACV,EAAA,IAAA,CAAC,GAAG,MAAM,CAAA;UAEV,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAA,CAAA;;;IAE/B,EAAA,SAAA,IAAI,CAAC,CAAC,EAAA;;IAEX,GAAA,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAA,CAAA;;;OAE/C,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAA,CAAA;;;;;;;;;;IAUzB,GAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAA,EAAA;IACd,IAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAA,EAAA;;SAEvB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAI,CAAC,GAAG,OAAO,EAAG,CAAC,GAAI,CAAC,GAAG,OAAO,EAAG,GAAG,CAAC,KAAK,GAAG,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAA,CAAA;;;;;;IAO/G,GAAA,oBAAoB,CAAC,KAAK,CAAA,CAAA;;;;;;;;;;;;OAOjB,MAAM,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;KAlFb,UAAU,GAAG,EAAE,CAAA;KACf,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAA,CAAA;KAClD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCqChD,UAAgC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;qDAAjB,GAAK,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHpB,UAAuD,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OACvD,UAAkC,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;8CAAnB,GAAM,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAFlB,GAAI,CAAA,CAAA,CAAA,aAAI,GAAI,CAAA,CAAA,CAAA,CAAC,QAAQ,EAAA,OAAAA,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJ9B,UAeQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;OAdN,UAAmB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAQK,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;;;OACL,UAGI,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;OAFF,UAAoB,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;;OACpB,UAAqB,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAxDnB,IAAI,CAAA;;KAET,OAAO,CAAA,YAAA;sBACJ,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,IAAI,IAAK,IAAI,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;MAIzB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;;MACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,CAAA;;;;;;;;;;UAUd,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,EAAA;OACpD,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAA,CAAA;;;;WAMlF,KAAK,GAAA,YAAA;IACT,EAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,YAAA,CAAA,CAAA;MACrF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;;;;;WAK/B,MAAM,GAAA,YAAA;IACN,EAAA,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CACpE,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAE,MAAM,EAAA,CAAA,CAAA;IAElB,EAAA,YAAA,CAAA,CAAA,EAAA,IAAI,GAAG,SAAS,CAAA,CAAA;;;;;;;;;IAWS,CAAA,MAAA,aAAA,GAAA,MAAA,IAAI,CAAC,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCUxC,UAA6B,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAPxB,GAAS,CAAA,CAAA,CAAA,IAAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;iEALJ,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;;;;;;;;;;;OAAnB,UAA+F,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;OAC/F,UAGM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAFJ,UAA0E,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;yCAA7C,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA;;OACnC,UAAkC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;mEAFJ,GAAU,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;4FADhC,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA;;;;8DAEY,GAAM,CAAA,CAAA,CAAA,EAAA;0CAAN,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA;;;yBAGhC,GAAS,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAGT,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;OADZ,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;kEADF,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAXd,UAAoB,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCADd,GAAc,CAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;OAHxB,UAqBM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApBJ,UAAmB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAA8B,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAzC1B,SAAS,CAAA;IACT,CAAA,IAAA,MAAM,GAAG,EAAE,CAAA;IACX,CAAA,IAAA,SAAS,GAAG,EAAE,CAAA;;WACZ,cAAc,GAAA,CAAA,YAAA;IACZ,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,+BAExE,MAAM,EAAE,MAAM,EAEf,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACF,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,GAAG,CAAA,CAAA;;;;WAIb,UAAU,GAAA,YAAA;IACR,EAAA,MAAA,QAAQ,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,sBAAA,CAAA,EAAA;IAEvF,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EACL,cAAc,EAAE,kBAAkB,EAAA;IAEpC,GAAA,IAAI,EAAG,IAAI,CAAC,SAAS,CACnB,EAAA,WAAW,EAAG,MAAM,EAAA,CAAA;;;UAGtB,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA;IACzB,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,EAAE,CAAA,CAAA;uBACX,SAAS,GAAA,CAAA,UAAA,CAAA,CAAA,CAAA;;;UAEP,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA;IACzB,GAAA,IAAI,CAAC,UAAU,CAAA,CAAA;OACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAA;;;;;;;;;;;MAgBH,MAAM,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OClDzC,UAGK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAFH,UAAyC,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;OACzC,UAAwD,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA9B,CAAA,MAAA,aAAA,GAAA,MAAA,OAAO,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;ICuDvC,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrB,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3B;;ICbA,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;IACrG,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAC1C,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IACxE,IAAI,MAAM,EAAE,GAAG,cAAc,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO;IACX,QAAQ,KAAK;IACb,QAAQ,QAAQ;IAChB,QAAQ,MAAM;IACd,QAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AACxB,cAAc,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrE,YAAY,EAAE,cAAc,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,KAAK,CAAC;IACN;;IC/DO,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC;IACnC;IAEO,MAAM,CAAC,GAAG,WAAW,CAAC;IACtB,MAAM,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,EAAE,GAAC,CAAC,CAAC;IAChB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAC,IAAI,CAAC,CAAC;IAIrD,MAAM,eAAe,GAAG,IAAI,CAAC;IAGpC;IACO,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IAIlD;;ICzBO,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;IAE1C;IACO,MAAM,qBAAqB,GAAG,EAAE,CAAC;IAEjC,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAE9B,MAAM,cAAc,GAAG,kBAAkB,GAAC,IAAI,CAAC;IAE/C,MAAM,iBAAiB,GAAG,GAAG,CAAC;;ICfrC,IAAY,UAuBX,CAAA;IAvBD,CAAA,UAAY,UAAU,EAAA;;IAErB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;IACd,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;IACnB,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;;IAGL,IAAA,UAAA,CAAA,UAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAqB,CAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;;IAGX,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,IAAA,UAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;IACjB,IAAA,UAAA,CAAA,UAAA,CAAA,sBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,sBAAoB,CAAA;IACpB,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IAEZ,CAAC,EAvBW,UAAU,KAAV,UAAU,GAuBrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,SAIX,CAAA;IAJD,CAAA,UAAY,SAAS,EAAA;IACpB,IAAA,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,IAAA,SAAA,CAAA,SAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM,CAAA;IACN,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACL,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,UAGX,CAAA;IAHD,CAAA,UAAY,UAAU,EAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACN,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,UAGX,CAAA;IAHD,CAAA,UAAY,UAAU,EAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACV,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,YAKX,CAAA;IALD,CAAA,UAAY,YAAY,EAAA;;IAEvB,IAAA,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAc,CAAA;IACd,IAAA,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,YAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAoB,CAAA;IACrB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA;;IC1CM,IAAIe,MAAc,CAAC;IACnB,IAAI,EAAwB,CAAC;IAC7B,IAAI,YAAY,GAAoBC,YAAe,CAAC,QAAQ,CAAC;IAE9D,SAAU,OAAO,CAAC,KAAe,EAAA;QACtCD,MAAI,GAAG,KAAK,CAAC;IACd,CAAC;IAEK,SAAU,KAAK,CAAC,KAA2B,EAAA;QAChD,EAAE,GAAG,KAAK,CAAC;IACZ,CAAC;IAEK,SAAU,eAAe,CAAC,KAAsB,EAAA;QACrD,YAAY,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,IAAI,aAAyB,CAAC;IAE/B,SAAU,gBAAgB,CAAC,KAAiB,EAAA;QACjD,aAAa,GAAG,KAAK,CAAC;IACvB;;IC+DA;UACa,WAAW,CAAA;IAEvB,IAAA,WAAA,CAAY,OAAsB,CAAC,EAAA;IAClC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACD,CAAA;IAEK,MAAO,cAAe,SAAQ,WAAW,CAAA;IAE9C,IAAA,WAAA,CAAY,IAAmB,EAAA;IAC9B,QAAA,KAAK,CAACE,UAAa,CAAC,cAAc,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACD,CAAA;IAEK,MAAO,oBAAqB,SAAQ,cAAc,CAAA;QAQvD,WAAY,CAAA,YAA6B,EAAE,KAAa,EAAE,QAAgB,EAAE,YAAA,GAAwB,KAAK,EAAE,iBAA0B,EAAE,eAA0B,EAAA;IAChK,QAAA,KAAK,CAACC,UAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,QAAA,IAAI,eAAe,EAAE;IACpB,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACvC,SAAA;IACD,QAAA,IAAI,iBAAiB,EAAE;IACtB,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC3C,SAAA;SACD;IACD,CAAA;IAEK,MAAO,uBAAwB,SAAQ,cAAc,CAAA;IAE1D,IAAA,WAAA,CAAY,aAAqB,EAAA;IAChC,QAAA,KAAK,CAACA,UAAa,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACnC;IACD,CAAA;IAEK,MAAO,UAAW,SAAQ,WAAW,CAAA;QAG1C,WAAY,CAAA,KAAA,GAAsBC,SAAY,CAAC,OAAO,EAAE,KAAa,CAAC,EAAA;IACrE,QAAA,KAAK,CAACF,UAAa,CAAC,WAAW,CAAC,CAAC;IACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SACb;IACD;;IC1ID;;IAEE;IACI,SAAU,KAAK,CAAC,OAAe,EAAA;IAEpC,IAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3BF,MAAI,CAAC,KAAK,EAAE,CAAC;IACb,IAAA,MAAM,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACjC,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACK,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACtC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,WAAW,GAAA;QAE1B,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACtC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,mBAAmB,GAAA;QAElC,MAAM,IAAI,GAAG,eAAe,CAAC;IAC7B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,UAAU,GAAA;QAEzB,MAAM,IAAI,GAAG,aAAa,CAAC;IAC3B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAElB,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;IAC5B,QAAA,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC9B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAGD,CAAG,GAAC,KAAK,CAAC;IAC1B,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;SACxB,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;IAGD;;IAEE;aACc,GAAG,GAAA;IAElB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACA,CAAG,GAAC,KAAK,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACxC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IACvB,CAAC;aAEe,IAAI,GAAA;IAEnB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,KAAK,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACxC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;IACxB,CAAC;IAEK,SAAU,OAAO,CAAC,UAAyB,EAAA;IAEhD,IAAA,IAAI,UAAU,KAAKC,UAAa,CAAC,IAAI,EAAE;IACtC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACF,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,KAAA;IACI,SAAA;IACJ,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,KAAA;QACD,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC;SAC9B,EAAE,IAAI,CAAC,CAAC;QACT,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC;SAChC,EAAE,IAAI,CAAC,CAAC;IACV;;ICxFA;IACO,MAAM,YAAY,GAAuB;QAC/C,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,GAAC,CAAC,GAAC,MAAM,CAAC;QAC3G,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,GAAC,CAAC,GAAC,MAAM,CAAC;KAC3G,CAAC;IACK,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,uBAAuB,CAAC,CAAC;IAEjI,SAAU,SAAS,CAAC,KAAa,EAAA;IAEtC,IAAA,IAAI,QAAiB,CAAC;QACtB,IAAI,KAAK,KAAK,IAAI,EAAE;YACnB,QAAQ,GAAG,KAAK,CAAC;IACjB,KAAA;IACI,SAAA;YACJ,QAAQ,GAAG,IAAI,CAAC;IAChB,KAAA;IAED,IAAA,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;IAC9B,QAAA,KAAK,CAAC,MAAM,GAAGE,iBAAmB,CAAC;IACnC,QAAA,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,KAAC,CAAC,CAAC;IACH,IAAA,WAAW,CAAC,MAAM,GAAGA,iBAAmB,CAAC;IACzC,IAAA,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC9B;;aCvBgB,MAAM,CAAC,MAAc,CAAC,EAAE,MAAc,CAAC,EAAA;IACtD,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAC1C;;aCFgB,SAAS,CAAC,KAAa,EAAE,QAAkC,EAAE,WAAwB,EAAA;IAEpG,IAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,GAAG,CAAC,EAAE;IACd,QAAA,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChB,SAAA;IACD,QAAA,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,KAAA;IACI,SAAA,IAAI,WAAW,EAAE;IACrB,QAAA,WAAW,EAAE,CAAC;IACd,KAAA;IACF;;UCda,MAAM,CAAA;IAGlB,IAAA,WAAA,CAAY,CAAY,GAAA,CAAC,EAAE,CAAA,GAAY,CAAC,EAAA;IACvC,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACX;QACD,MAAM,CAAC,CAAS,EAAE,CAAS,EAAA;IAC1B,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACX;QACD,UAAU,GAAA;IACT,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,QAAA,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAAC,mBAAmB,CAAC,CAAC;SAC1E;IACD,CAAA;IAEK,MAAO,aAAc,SAAQ,MAAM,CAAA;IAGxC,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;IAuBE;;IClCK,MAAM,SAAS,GAAG;IACxB,IAAA,UAAU,EAAE,KAAK;IACjB,IAAA,UAAU,EAAE,KAAK;KACjB,CAAA;aAEe,cAAc,GAAA;IAC7B,IAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;IAC7B,IAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,MAAM,UAAU,CAAA;IAAhB,IAAA,WAAA,GAAA;YACC,IAAE,CAAA,EAAA,GAAG,EAAE,CAAC;SAKR;IAAA,CAAA;IAED,MAAM,mBAAmB,CAAA;IAKxB,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,GAAG,eAAwB,GAAG,GAAG,GAAG,MAAwB,GAAG,OAAO,CAAC;IACrF,IAAI,MAAiB,CAAC;IACtB,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAG7C,SAAA,aAAa,CAAC,OAAwB,EAAE,KAAa,EAAE,QAAgB,EAAE,YAAY,GAAG,KAAK,EAAE,iBAA0B,EAAE,eAA0B,EAAA;QAEpK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,IAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,OAAO,GAAG,YAAY,GAAG,KAAK,GAAG,eAAe,GAAG,QAAQ,GAAG,oBAAoB,GAAI,YAAY;cAC9I,iBAAiB,GAAG,iBAAiB,CAAC,CAAA;QACzC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;IACzC,QAAA,IAAI,YAAY,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIC,oBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAE,CAAC,CAAC;IACvI,SAAA;IACI,aAAA;gBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIA,oBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAE,CAAC,CAAC;IACrF,SAAA;IACF,KAAC,CAAC,CAAC;;IAEH,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACtD,CAAC;IAMD,SAAS,aAAa,CAAkB,KAAmB,EAAA;QAC1D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAKP,UAAa,CAAC,KAAK,EAAE;IACtC,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,QAAAQ,KAAS,CAAE,IAAsB,CAAC,OAAO,CAAC,CAAC;IAC3C,KAAA;IACF,CAAC;IAED,SAAS,gBAAgB,CAAkB,KAAmB,EAAA;QAE7D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKR,UAAa,CAAC,QAAQ;IAC1B,YAAA,UAAU,CAAC,EAAE,GAAsB,IAAK,CAAC,EAAE,CAAC;gBAC5C,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,qBAAqB;gBACvCS,WAAe,EAAE,CAAC;gBAClB,MAAM;IACP,QAAA,KAAKT,UAAa,CAAC,mBAAmB;IACrC,YAAA,UAAU,CAAC,IAAI,GAAiC,IAAK,CAAC,IAAI,CAAC;gBAC3D,IAAI,UAAU,CAAC,IAAI,KAAKK,UAAa,CAAC,IAAI,EAC1C;IACC,gBAAA,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC;IAClC,gBAAA,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC;IACrC,aAAA;qBACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAChD;IACC,gBAAA,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC;IACnC,gBAAA,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC;IACpC,aAAA;gBACD,UAAU,CAAC,eAAe,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrG,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIK,WAAc,CAACV,UAAa,CAAC,iBAAiB,CAAC,CAAE,CAAC,CAAC;gBACnFW,mBAAuB,EAAE,CAAC;gBAC1B,MAAM;IACP,QAAA,KAAKX,UAAa,CAAC,UAAU;IAC5B,YAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACxD,YAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,YAAA,aAAa,EAAE,CAAC;gBAChB,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,UAAU;IAC5B,YAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5B,YAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBACxDY,UAAc,EAAE,CAAC;gBACjB,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,cAAc,CAAkB,KAAmB,EAAA;QAE3D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKZ,UAAa,CAAC,UAAU;;gBAE5B,UAAU,CAAC,IAA0B,CAAC,CAAC;gBACvC,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,WAAW;gBAC7B,WAAW,CAAC,IAA2B,CAAC,CAAC;gBACzC,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,QAAQ;gBAC1B,QAAQ,CAAC,IAAwB,CAAC,CAAC;gBACnC,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,UAAU,CAAC,IAAwB,EAAA;IAE3C,IAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1B,IAAA,IAAI,YAAY,GAAGD,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;IACjC,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,KAAC,CAAC,CAAC;IACH;;;;;IAKM;QAEN,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1F,IAAI,UAAU,CAAC,IAAI,KAAKM,UAAa,CAAC,IAAI,EAAE;YAC3C,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACzE,KAAA;aACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAAE;YACjD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAA;;IAGD,IAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,IAAI,EAAE;IAC3C,QAAA,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjF,KAAA;aACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAAE;IACjD,QAAA,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChF,KAAA;IAED,IAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,MAAM,CACnC,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACxD,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACxD,CAAC;QAEF,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;IACpF,QAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAC/D,KAAA;;IAGD,IAAA,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;IAG9B,IAAA,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC;IAC7C,WAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,EACjD;YACC,OAAO,CAAC,GAAG,CACV,CAAA;uBACoB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;AACjB,qBAAA,EAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AACvB,qBAAA,EAAA,aAAa,CAAC,CAAC,CAAE,CAAA,CACpC,CAAC;IACH,KAAA;IACF,CAAC;IAED,SAAS,WAAW,CAAC,IAAyB,EAAA;;IAG7C,IAAA,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;YACpF,WAAW,CAAC,IAAI,EAAE,CAAC;IACnB,KAAA;IACI,SAAA,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;YACxF,WAAW,CAAC,IAAI,EAAE,CAAC;IACnB,KAAA;QACD,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,SAAS,QAAQ,CAAC,IAAsB,EAAA;IAEvC,IAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,EAAE;YACpCQ,GAAO,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,OAAO,EAAE;IACjB,YAAAC,OAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAA;IACD,KAAA;IACI,SAAA;YACJC,IAAQ,EAAE,CAAC;IACX,KAAA;IACF,CAAC;IAED;IAEM,SAAU,sBAAsB,CAAC,aAAqB,EAAA;QAE3D,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;IACzC,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIC,uBAA0B,CAAC,aAAa,CAAC,CAAE,CAAC,CAAC;IAC9E,KAAC,CAAC,CAAC;;IAEH,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QAE9D,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpG,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAExG,CAAC;IAEK,SAAU,yBAAyB,CAAkB,KAAmB,EAAA;QAE7E,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAKhB,UAAa,CAAC,UAAU,EAC1C;IACC,QAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IACjE,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIU,WAAc,CAACV,UAAa,CAAC,oBAAoB,CAAC,CAAE,CAAC,CAAC;IACtF,QAAA,aAAa,EAAE,CAAC;IAChB,KAAA;IACF,CAAC;IAED,SAAS,uBAAuB,CAAkB,KAAmB,EAAA;QAEpE,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKA,UAAa,CAAC,UAAU;gBAC5B,mBAAmB,CAAC,IAA0B,CAAC,CAAC;gBAChD,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,WAAW;gBAC7B,oBAAoB,CAAC,IAA2B,CAAC,CAAC;gBAClD,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,QAAQ;gBAC1B,iBAAiB,CAAyB,CAAC,CAAC;gBAC5C,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,mBAAmB,CAAC,IAAwB,EAAA;IAEpD,IAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEnC,IAAA,IAAI,YAAY,GAAGD,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;IACjC,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,KAAC,CAAC,CAAC;;IAGH,IAAA,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,EACpD;IACC,QAAA,IAAI,OAAsB,CAAC;IAC3B,QAAA,IAAI,MAAM,KAAK,EAAE,CAAC,UAAU,EAAE;IAC7B,YAAA,OAAO,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;IAChD,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;IACjD,SAAA;IAED,QAAA,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,QAAA,IAAI,MAAM,KAAK,EAAE,CAAC,UAAU,EAAE;IAC7B,YAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjD,SAAA;YAED,MAAM,CAAC,GAAG,GAAG,IAAI,MAAM,CACtB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EACxB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CACxB,CAAC;YAEF,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC1D,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IACrC,SAAA;IACD,KAAA;IACF,CAAC;IAED,SAAS,oBAAoB,CAAC,IAAyB,EAAA;IAEtD,IAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAsB,EAAA;IAEhD,IAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,IAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;;IAEf;;;IAGI;IACL;;UCrUa,YAAY,CAAA;QAIxB,WAAY,CAAA,UAAyB,EAAE,SAAiB,EAAA;IACvD,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAC9B,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACxB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC3B;IACD;;ICLM,IAAI,WAAW,GAAG,KAAK,CAAC;IAI/B,IAAIkB,YAAkB,CAAC;IAEvB,MAAM,UAAU,GAAkB,IAAIC,UAAa,EAAE,CAAC;IACtD,MAAM,eAAe,GAAmB,EAAE,CAAC;IAE3C;IACA;;;IAGI;aAEY,WAAW,GAAA;IAE1B;;IAEiD;IAEjD,IAAAD,YAAU,GAAGE,cAAgB,CAAC;;IAG9B,IAAA,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,UAAU,CAAC,KAAK,GAAGjB,SAAY,CAAC,OAAO,CAAC;IAExC,IAAA,MAAM,IAAI,GAAGJ,MAAI,CAAC,IAAI,CAAC;IACvB,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EACrB;YACC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAC3B;gBACC,WAAW,GAAG,CAAC,WAAW,CAAC;IAC3B,YAAAA,MAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpB,SAAA;IACD,QAAA,eAAe,CAACmB,YAAU,EAAE,IAAI,CAAC,CAAC;IAClC,KAAA;IAED,IAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;;QAED,eAAe,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,UAAU,EAAEA,YAAU,CAAC,CAAC,CAAC;;QAG/D,IAAI,UAAU,CAAC,KAAK,KAAKf,SAAY,CAAC,OAAO,EAAE;;;IAG9C,QAAA,oBAAoB,CAACe,YAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,KAAA;IACF,CAAC;IAED,SAAS,eAAe,CAAC,KAAa,EAAE,IAAc,EAAA;QAErD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAC5E;YACC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC/E,UAAU,CAAC,KAAK,GAAGf,SAAY,CAAC,EAAE,CAAC;IACnC,SAAA;IACD,KAAA;aACI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;YACpF,UAAU,CAAC,KAAK,GAAGA,SAAY,CAAC,IAAI,CAAC;IACrC,KAAA;IACF,CAAC;IAOD,SAAS,oBAAoB,CAAC,KAAa,EAAE,KAAmB,EAAA;;IAG/D,IAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAA,IAAI,KAAK,KAAKA,SAAY,CAAC,EAAE,EAAE;IAC9B,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClB,KAAA;IACI,SAAA,IAAI,KAAK,KAAKA,SAAY,CAAC,IAAI,EAAE;IACrC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,KAAA;IACD,IAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEK,SAAU,WAAW,CAAC,WAAmB,EAAA;;QAG9C,IAAI,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,KAAmB,KAAI;IACzD,QAAA,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW,EAAE;IAC7B,YAAA,OAAO,IAAI,CAAC;IACZ,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;IACd,KAAC,CAAC,CAAC;;QAGH,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC;;IAG/B,IAAA,eAAe,CAAC,OAAO,CAAC,CAAC,KAAmB,KAAI;YAC/C,IAAI,KAAK,CAAC,KAAK,KAAKA,SAAY,CAAC,OAAO,EAAE;gBACzC,oBAAoB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,SAAA;IACF,KAAC,CAAC,CAAC;IACJ;;ICzGgB,SAAA,cAAc,CAAC,KAAa,EAAE,EAAkB,EAAA;IAE/D,IAAA,MAAM,OAAO,GAAoB,EAAE,CAAC,OAAO,CAAC;IAC5C,IAAA,MAAM,UAAU,GAAoB,EAAE,CAAC,UAAU,CAAC;IAClD,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAIkB,gBAAkB,EAAE;IAC9D,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpB,KAAA;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAIhB,CAAG,GAACiB,QAAU,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAIjB,CAAG,GAACgB,gBAAkB,EAAE;IACrF,QAAA,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvB,KAAA;IACD,IAAA,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/D,IAAA,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACnE;;ICNA,IAAI,UAAkB,CAAC;aAEP,QAAQ,GAAA;IAEvB;;IAEiD;IAEjD,IAAA,UAAU,GAAGD,cAAgB,CAAC;;;;QAK9B,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YACpC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IACjF,KAAA;;QAGD,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,KAAC,CAAC,CAAC;IAEH,IAAA,IAAI,YAAY,GAAGpB,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAA;IACF,CAAC;aAEe,iBAAiB,GAAA;IAEhC,IAAA,UAAU,GAAGoB,cAAgB,CAAC;;QAG9B,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YAC9B,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACtF,KAAA;QACD,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YAC/B,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IACxF,KAAA;;QAGD,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,KAAC,CAAC,CAAC;IAEH,IAAA,IAAI,YAAY,GAAGpB,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAA;IACF,CAAC;IAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,MAAoB,EAAE,OAAsB,EAAA;;IAGvF,IAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1D,IAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IAC7C,YAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAClD;IACC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IACzB,KAAA;IACF;;aCnEgB,QAAQ,GAAA;QAEvBD,MAAI,CAAC,KAAK,EAAE,CAAC;IAEb,IAAA,IAAI,WAAW,EAAE;IAChB,QAAA,QAAQ,EAAE,CAAC;IACX,KAAA;IAED,IAAA,UAAU,EAAE,CAAC;IAEb,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAElB,IAAA,WAAW,EAAE,CAAC;IACf,CAAC;IAED,SAAS,WAAW,GAAA;IAEnB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,KAAC,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,UAAU,GAAA;IAElB,IAAA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACpB,IAAA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACpB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,SAAS,QAAQ,GAAA;IAEhB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAEtB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACvB;;UC/Ca,WAAW,CAAA;IAAxB,IAAA,WAAA,GAAA;YACC,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;YACd,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;YACpB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;YACrB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;YAC3B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;YACxB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;YACvB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;SAUvB;QATA,KAAK,GAAA;IACJ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IACzB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAChC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC5B;IACD;;UCfY,QAAQ,CAAA;IAOpB,IAAA,WAAA,CAAY,SAAiB,EAAA;YAN7B,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;YACpB,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAC;YAChC,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;YAC7B,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;YAI5B,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACpD,QAAA,IAAI,MAAM,IAAI,MAAM,YAAY,iBAAiB,EAAE;IAClD,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACtD,OAAO;IACP,SAAA;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAA6B,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAGwB,WAAa,CAAC;IAClC,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAGA,WAAa,GAAGC,WAAa,CAAC;SACnD;IACD,IAAA,MAAM,CAAC,GAAW,EAAA;IACjB,QAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;IACV,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACrB;IACD,IAAA,SAAS,CAAC,GAAW,EAAA;IACpB,QAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvB,SAAA;SACD;QACD,KAAK,GAAA;YACJ,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAChE;IACD;;ICnCD;UACa,QAAQ,CAAA;QAOpB,WAAY,CAAA,GAAkB,EAAE,IAAY,EAC1C,GAA6B,EAAE,KAAa,EAAE,IAAA,GAAe,QAAQ,EAAA;YAFvE,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;;IAKjB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;QACD,MAAM,GAAA;IACL,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACrD;QACD,KAAK,GAAA;;;IAGJ,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;IAKjD,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;;SAG1F;IACD,CAAA;IAEK,MAAO,gBAAiB,SAAQ,QAAQ,CAAA;QAE7C,WAAY,CAAA,GAAkB,EAAE,IAAY,EAC1C,GAA6B,EAAE,KAAa,EAAE,IAAa,EAAA;YAE5D,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAJ5B,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;SAK1B;IACD,IAAA,IAAI,KAAK,GAAA;YACR,OAAO,IAAI,CAAC,MAAM,CAAC;SACnB;QACD,IAAI,KAAK,CAAC,CAAS,EAAA;IAClB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;SACzB;IACD;;UClDY,SAAS,CAAA;IAIrB,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAA;IAC5D,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACrB;IACD,IAAA,SAAS,CAAC,QAAmB,EAAA;IAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5C,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACtD,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IACxD,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW;oBACzB,OAAO,GAAG,cAAc,CAAC;oBACzB,SAAS,GAAG,YAAY,CAAC;IAC1B,gBAAC,QAAQ,GAAG,aAAa,CAAC,EAAE;IAC9B,YAAA,OAAO,KAAK,CAAC;IACb,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,IAAI,CAAC;IACZ,SAAA;SACD;IACD,CAAA;IAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;IAI7C,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAA;IAC/E,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAJ3B,IAAG,CAAA,GAAA,GAAW,IAAI,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IAK7B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SACvB;IACD,IAAA,IAAI,CAAC,KAAa,EAAA;;;;IAIjB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAC9C;QACD,cAAc,CAAC,KAAa,EAAE,WAAwB,EAAA;IACrD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAC7C;QACS,mBAAmB,CAAC,KAAa,EAAE,WAAwB,EAAA;IACpE,QAAA,IAAI,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;IAC3C,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;IAClB,SAAA;SACD;IACD,CAAA;IAEK,MAAO,MAAO,SAAQ,eAAe,CAAA;IAC1C,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAA;YAC/E,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SACrC;QACD,cAAc,CAAC,KAAa,EAAE,WAAwB,EAAA;;IAErD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;;SAE7C;IACD,CAAA;IAEK,MAAO,IAAK,SAAQ,eAAe,CAAA;IAGxC,IAAA,WAAA,CAAY,GAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,aAAqB,EAAA;YACrF,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAFnC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;IAG3B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACnC;QACD,aAAa,CAAC,KAAa,EAAE,WAAwB,EAAA;IACpD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpD,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EACX;gBACC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,SAAA;SACD;IACD,IAAA,MAAM,CAAC,QAAoB,EAAA;IAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC3B;IACS,IAAA,WAAW,CAAC,QAAoB,EAAA;IACzC;IACuD;YACvD,IAAI,QAAQ,YAAY,MAAM,EAAE;IAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC7B,SAAA;IACI,aAAA;gBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;IACnB,SAAA;SACD;QACS,WAAW,GAAA;IACpB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7B;IACS,IAAA,aAAa,CAAC,MAAc,EAAA;IACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;SAC/B;IACS,IAAA,iBAAiB,CAAC,MAAc,EAAA;IACzC,QAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;YAEjC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAExB,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,QAAA,MAAM,WAAW,GAAG,iBAAiB,GAAG,EAAE,CAAC;IAC3C,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAC,CAAC,CAAC;IACnC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;IAE5C,QAAA,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACjC,QAAA,MAAM,gBAAgB,GAAG,UAAU,GAAG,IAAI,CAAC;YAC3C,IAAI,MAAM,GAAG,gBAAgB,IAAI,MAAM,GAAG,CAAC,gBAAgB,EAAE;gBAC5D,MAAM,GAAG,CAAC,CAAC;IACX,SAAA;iBACI,IAAI,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACnC,SAAA;iBACI,IAAI,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACnC,SAAA;YAED,IAAI,CAAC,GAAG,MAAM,IAAI,UAAU,GAAG,gBAAgB,CAAC,GAAG,WAAW,CAAC;YAE/D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;SAMtB;IACD;;ICtID,SAAS,eAAe,GAAA;QACvB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,SAAS,cAAc,CAAwB,GAAmB,EAAA;IACjE,IAAA,IAAI,GAAG;YACN,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;YAE1D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;QAK7C,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAC3D,GAA6B,EAAE,KAAa,EAAA;IAE7C,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,qBAAsB,SAAQ,eAAe,CAAA;QAKzD,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAC9E,GAA6B,EAAE,KAAa,EAAA;YAE7C,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,YAAa,SAAQ,MAAM,CAAA;QAKvC,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAC9E,GAA6B,EAAE,KAAa,EAAA;YAE7C,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,UAAW,SAAQ,IAAI,CAAA;QAKnC,WAAY,CAAA,GAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,aAAqB,EACrF,GAA6B,EAAE,KAAa,EAAA;YAE5C,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,IAAA,MAAM,CAAC,QAAoB,EAAA;IAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,QAAA,YAAY,CAAE,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,CAAA,QAAA,EAAW,CAAC,CAAE,CAAA,CAAC,CAAC;SAC5B;IACD,CAAA;IAED,SAAS,UAAU,GAAA;QAClB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,IAAA,IAAI,GAAG,GAAkB,IAAI,aAAa,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAA,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,EAC5B;;;;;YAMC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnB,QAAA,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YAE5C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvE,CAAC,IAAI,CAAC,CAAC;IACP,KAAA;IACF,CAAC;IAEK,MAAO,IAAK,SAAQ,eAAe,CAAA;QAKxC,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAC3D,GAA6B,EAAE,KAAa,EAAE,SAAkB,EAAA;YAEjE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAPvC,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;IAQrB,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IACzB,QAAA,IAAI,SAAS;IACZ,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;;IAG3C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;;;;SAKrD;IACD;;UC3HY,cAAc,CAAA;IAM1B,IAAA,WAAA,CAAY,OAAwB,EAAA;YADpC,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;IAGrB,QAAA,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC;;IAG9B,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,GAACC,EAAI,EAAEC,KAAO,GAACC,EAAI,GAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,EAAEF,EAAI,EAAEE,EAAI,EAAEC,WAAa,CAAC,CAAC;YAC7D,GAAG,CAAC,MAAM,CAACxB,CAAG,GAACqB,EAAI,GAACA,EAAI,EAAEC,KAAO,GAACC,EAAI,GAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,GAAG,EAAEF,EAAI,EAAEE,EAAI,EAAEC,WAAa,CAAC,CAAC;;YAG9D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,QAAA,IAAI,OAAO,GAAG5B,YAAe,CAAC,UAAU,EAAE;IACzC,YAAA,UAAU,GAAG6B,eAAiB,CAAC;IAC/B,SAAA;IACD,QAAA,GAAG,CAAC,MAAM,CAAC,CAACC,QAAU,EAAE,CAACA,QAAU,CAAC,CAAC;IACrC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAEA,QAAU,EAAEC,SAAW,EAAEC,iBAAmB,CAAC,CAAC,CAAA;IAC/E,SAAA;YACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;IAC9B,YAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACf,YAAA,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE;IACnB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB,aAAA;gBAED,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5B,YAAA,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE;IACnB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB,aAAA;gBAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAClC,SAAC,CAAC,CAAC;;IAGH,QAAA,IAAI,OAAO,GAAGhC,YAAe,CAAC,WAAW,EAAE;IAC1C,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEI,CAAG,EAAEkB,QAAU,EAAEW,eAAiB,CAAC,CAAC;gBAC1D,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE5B,CAAG,GAACiB,QAAU,CAAC,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAElB,CAAG,EAAEkB,QAAU,EAAEW,eAAiB,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,SAAA;IACI,aAAA;IACJ,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE7B,CAAG,EAAEkB,QAAU,CAAC,CAAC;IACnD,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEjB,CAAG,GAACiB,QAAU,CAAC,CAAC;IAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,GAAG,EAAElB,CAAG,EAAEkB,QAAU,CAAC,CAAC;IACtD,SAAA;SACD;IACD;;ICrDD,MAAM,gCAAiC,SAAQ,cAAc,CAAA;QAM5D,WAAY,CAAA,OAAwB,EAAE,GAA6B,EAAA;YAElE,KAAK,CAAC,OAAO,CAAC,CAAC;;IAGf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAClC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACzD,GAAG,EAAE,OAAO,CAAC,CAAC;YACd,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CACnC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACzD,GAAG,EAAE,OAAO,CAAC,CAAC;;YAGd,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EACxF,GAAG,EAAE,OAAO,CAAC,CACZ,CAAC;IACH,SAAC,CAAC,CAAC;IACH,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;;IAG5B,QAAA,IAAI,OAAO,GAAGtB,YAAe,CAAC,WAAW,EACzC;IACC,YAAA,MAAM,MAAM,GAAoB,IAAI,CAAC,OAAO,CAAC;IAC7C,YAAA,MAAM,MAAM,GAAoB,IAAI,CAAC,UAAU,CAAC;gBAEhD,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAClG,GAAG,EAAE,MAAM,CAAC,CAAC;IACW,YAAA,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE7E,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACrG,GAAG,EAAE,MAAM,CAAC,CAAC;IACW,YAAA,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChF,SAAA;IAED,aAAA;IACC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;IAC5B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAC1E,GAAG,EAAE,MAAM,CAAC,CAAC;gBACb,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAC7E,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,SAAA;SACD;IACD,CAAA;IAEK,MAAO,oBAAqB,SAAQ,gCAAgC,CAAA;QAczE,WAAY,CAAA,OAAwB,EAAE,GAA6B,EAAA;IAElE,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpB,QAAA,IAAI,GAAG,GAAG,IAAI,aAAa,CAAC;;IAE5B,QAAA,GAAG,CAAC,MAAM,CAACkC,KAAO,GAACC,SAAW,GAAC,GAAG,EAAEA,SAAW,GAAC,GAAG,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAEA,SAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtE,QAAA,GAAG,CAAC,MAAM,CAACD,KAAO,GAACC,SAAW,GAAC,GAAG,EAAEA,SAAW,GAAC,GAAG,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAEA,SAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACvE,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;;YAG1B,GAAG,CAAC,MAAM,CAAC,CAAC,EAAET,KAAO,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACtB,CAAG,GAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACA,CAAG,GAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACA,CAAG,GAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;;IAGjE,QAAA,GAAG,CAAC,MAAM,CAAC8B,KAAO,GAACE,WAAa,GAAC,CAAC,EAAE,CAAC,GAACd,QAAU,CAAC,CAAC;IAClD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAEc,WAAa,EAAE/B,CAAG,GAACiB,QAAU,GAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;;YAGhF,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEI,KAAO,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEtB,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9E,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEhC,CAAG,GAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAED,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7E,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEhC,CAAG,GAACA,CAAG,GAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAED,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC7E,GAAG,CAAC,MAAM,CAACH,KAAO,EAAE,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEG,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9E,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEiC,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7E,QAAA,GAAG,CAAC,MAAM,CAACD,CAAG,GAACA,CAAG,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEiC,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;SAC7E;IACD;;ICtGK,SAAU,mBAAmB,CAAC,OAAoB,EAAA;IAEvD,IAAA,IAAI,YAAY,GAAGL,YAAe,CAAC,QAAQ,CAAC;IAE5C,IAAA,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE;IACjC,QAAA,YAAY,IAAIA,YAAe,CAAC,UAAU,CAAA;IAC1C,KAAA;IACD,IAAA,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE;IAClC,QAAA,YAAY,IAAIA,YAAe,CAAC,WAAW,CAAA;IAC3C,KAAA;IAED,IAAA,OAAO,YAAY,CAAC;IACrB,CAAC;aAEe,QAAQ,CAAC,YAA6B,EAAE,KAAa,EAAE,UAAkB,EAAA;QAExF,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9B,IAAA,OAAO,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,oBAAoB,CAAC,YAAY,EAAED,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;aAEe,WAAW,GAAA;IAE1B,IAAA,IAAIA,MAAI,EACR;IACC,QAAA,aAAa,CAACA,MAAI,CAAC,mBAAmB,CAAC,CAAC;IACxC,QAAA,aAAa,CAACA,MAAI,CAAC,gBAAgB,CAAC,CAAC;IACrC,QAAA,aAAa,CAACA,MAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,KAAA;IACD,IAAA,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;YAC1B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,KAAA;IACD,IAAA,cAAc,EAAE,CAAC;IAClB;;IC/BA,IAAI,sBAAuC,CAAC;IAC5C,IAAI,oBAAqC,CAAC;aAE1BpB,MAAI,CAAC,OAAoB,EAAE,UAAkB,EAAE,KAAa,EAAA;IAE3E,IAAA,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAElD,gBAAgB,CAAC2D,OAAK,CAAC,CAAC;QACxB,IAAI,OAAO,CAAC,kBAAkB,EAAE;IAC/B,QAAA,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACxH,KAAA;IACI,SAAA;YACJ,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9D,KAAA;IACF,CAAC;aAEeC,SAAO,GAAA;IAEtB,IAAA,WAAW,EAAE,CAAC;IACd,IAAA,IAAI,sBAAsB,EAAE;YAC3B,sBAAsB,CAAC,KAAK,EAAE,CAAC;YAC/B,sBAAsB,GAAG,IAAI,CAAC;IAC9B,KAAA;IACD,IAAA,IAAI,oBAAoB,EAAE;YACzB,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAC7B,oBAAoB,GAAG,IAAI,CAAC;IAC5B,KAAA;IACF,CAAC;IAED,SAASD,OAAK,GAAA;IAEb,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAClC,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;QACvC,SAAS,CAACmC,eAAiB,GAAC,IAAI,EAAE,CAAC,KAAa,KAAI;IACnD,QAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAG,EAAA,KAAK,EAAE,CAAC;IAC3B,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAClB,EAAE,qBAAqB,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,qBAAqB,GAAA;IAE7B,IAAA,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/C,IAAA,MAAM,CAAC,gBAAgB,CACtB,SAAS,EACT,CAAC,CAAC,KAAI,EAAGzC,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAC9B,EAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAC,CACvC,CAAC;IAEF,IAAA,oBAAoB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC7C,IAAA,MAAM,CAAC,gBAAgB,CACtB,OAAO,EACP,CAAC,CAAC,KAAI,EAAGA,MAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,EAChC,EAAC,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAC,CACrC,CAAC;IAEF,IAAA0C,QAAM,EAAE,CAAC;IACV,CAAC;IAED,SAASA,QAAM,GAAA;IAEd,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,IAAA1C,MAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE2C,qBAAuB,CAAC,CAAC;;IAEpF,IAAA3C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE4C,kBAAoB,CAAC,CAAC;IAC3E,IAAA5C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE6C,kBAAoB,CAAC,CAAC;IAC5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DC6HO,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;OAD3C,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA8C,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;;kIAA1C,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;IADb,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4DAQ3C,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;OAH9C,UAKK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAJJ,UAGU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAFT,UAAqB,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACnB,UAA8C,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;;mIAA1C,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;IAHhB,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAYnD,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA8D,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAA3B,GAAU,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAStC,GAAc,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;OAHtB,UAKK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAJJ,UAGU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAFT,UAAyC,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACvC,UAAsB,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;;;;IAHI,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAW9C,CAAA,IAAA,SAAA,sBAAA,GAAc,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;yCAwCvB,GAAe,CAAA,CAAA,CAAA,IAAA3D,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;IAxCf,GAAA,uBAAA,GAAc,QAAK,IAAI,EAAA;;;;;;;;;;;;;+BAwCvB,GAAe,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAfX,GAAO,CAAA,CAAA,CAAA,CAAC,kBAAkB,KAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAxB3C,UAoCK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAnCJ,UAkCK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjCJ,UAA2E,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;;OAC3E,UA+BU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;OA9BT,UAA4B,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OAC5B,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAA6F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAApB,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,WAAW,CAAA;;OAC5F,UAA+C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAEhD,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAgG,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAArB,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,YAAY,CAAA;;OAC/F,UAA6C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAE9C,UAMK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OALJ,UAAa,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;OACb,UAA6F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAzB,GAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;OACjF,UAA+B,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC/B,UAA+F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAA1B,GAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;OAClF,UAAiC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAElC,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAwF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAA3B,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,kBAAkB,CAAA;;OACvF,UAAgD,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;OASjD,UAEK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAyD,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;;;;yDA9BxB,GAAc,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;mDA8BZ,GAAQ,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;IA1B8B,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,WAAW,CAAA;;;;IAIjB,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,YAAY,CAAA;;;;IAK3B,IAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;;;IAEZ,IAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;;;IAIrB,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,kBAAkB,CAAA;;;uBAGnF,GAAO,CAAA,CAAA,CAAA,CAAC,kBAAkB,KAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAE/B,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;sCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;IADa,GAAA,gBAAA,GAAO,IAAC,iBAAiB,KAAA,KAAA,CAAA,EAAA,mBAAA,CAAA,gCAAA,GAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA;;;;OAA7C,UAIQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;IAJY,GAAA,aAAA,CAAA,MAAA,cAAA,GAAO,IAAC,iBAAiB,CAAA,CAAA;;;;;;;;;oCACrC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;qCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAAJ,MAAI,CAAA;;;;IADa,IAAA,aAAA,CAAA,MAAA,cAAA,GAAO,IAAC,iBAAiB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;IAEZ,CAAA,IAAA,OAAA,YAAA,GAAI,KAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;IAA7B,GAAA,MAAA,CAAA,OAAA,GAAA,kBAAA,YAAA,GAAI,KAAC,QAAQ,CAAA;;;;;OAA5B,UAAqD,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;IAAtB,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,YAAA,GAAI,KAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;IAA7B,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,kBAAA,MAAA,kBAAA,YAAA,GAAI,KAAC,QAAQ,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAkB1B,GAAoB,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;IASpB,CAAA,IAAA,SAAA,4BAAA,GAAoB,QAAK,KAAK,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAdtC,UAoBK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAnBJ,UAkBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjBJ,UAAmE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OACnE,UAeU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;OAdT,UAAqC,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;8DAFH,GAAW,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;oCAGxC,GAAoB,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;IASpB,GAAA,6BAAA,GAAoB,QAAK,KAAK,EAAA;;;;;;;;;;;;;;;;IAdG,KAAA,UAAA,GAAA,oBAAA,CAAA,IAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAMlD,GAAW,CAAA,EAAA,CAAA,CAAA;;;;oCAAhB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;qCAAC,GAAW,CAAA,EAAA,CAAA,CAAA;;;;mCAAhB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAEH,CAAA,IAAA,QAAA,kBAAA,GAAU,KAAC,iBAAiB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;iBAAC,yDAC9B,CAAA,CAAA;;;;;;;;;;;;;;;;;OAFD,UAIK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;OAFJ,UAAgF,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChF,UAAgF,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;IAF/E,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,mBAAA,IAAA,IAAA,QAAA,MAAA,QAAA,kBAAA,GAAU,KAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhC,UAA+C,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;OAC9C,UAAiE,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;iEAA9B,GAAc,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA7FnD,CAAA,IAAA,SAAA,sBAAA,GAAc,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;IAKvB,CAAA,IAAA,SAAA,iBAAA,GAAS,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;qCAYjB,GAAU,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;IAOX,CAAA,IAAA,SAAA,oBAAA,GAAY,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;0CAWrB,GAAgB,CAAA,CAAA,CAAA,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;8BApBR6D,YAAU,CAAA,CAAA;;;;oCADY,GAAU,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAhB9C,UAuGM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;OAvFL,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwB,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;IAfpB,GAAA,uBAAA,GAAc,QAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;IAKvB,GAAA,kBAAA,GAAS,QAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;;gDASY,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA;;;2BAGvC,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;IAOX,GAAA,qBAAA,GAAY,QAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;gCAWrB,GAAgB,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA7Nf,MAAAA,YAAU,GAAG,WAAW,CAAA;;;;;SAR1B,IAAI,CAAA;SACJ,QAAQ,CAAA;;;IAGR,CAAA,IAAA,gBAAgB,GAAG,IAAI,CAAA;;WACrB,OAAO,GAAA,IAAOC,WAAgB,EAAA,CAAA;;;IAMhC,CAAA,IAAA,YAAY,GAAG,KAAK,CAAA;;IACpB,CAAA,IAAA,eAAe,GAAG,KAAK,CAAA;IACvB,CAAA,IAAA,cAAc,GAAG,IAAI,CAAA;IACrB,CAAA,IAAA,SAAS,GAAG,KAAK,CAAA;IACjB,CAAA,IAAA,UAAU,GAAG,IAAI,CAAA;IACjB,CAAA,IAAA,cAAc,GAAG,KAAK,CAAA;IAEtB,CAAA,IAAA,oBAAoB,GAAG,KAAK,CAAA;SAC5B,WAAW,GAAA,EAAA,CAAA;IAEX,CAAA,IAAA,cAAc,GAAG,gBAAgB,CAAA;IACjC,CAAA,IAAA,sCAAsC,GAAG,EAAE,CAAA;SAC3C,qCAAqC,CAAA;;KAEzC,OAAO,CAAA,YAAA;uBACN,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAChF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;sBAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IAClB,EAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;;KAG1C,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,qCAAqC,CAAA,CAAA;IACnD,EAAAC,SAAY,EAAA,CAAA;;;WAGP,QAAQ,GAAA,YAAA;IAEb,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,KAAK,CAAA,CAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,IAAI,CAAA,CAAA;IACb,EAAA,MAAA,YAAY,GAAGC,mBAAwB,CAAC,OAAO,CAAA,CAAA;;IAE/C,EAAA,MAAA,sBAAsB,GAAG,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,mBAAA,CAAA,EAAA;IAClG,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAG,IAAI,CAAC,SAAS,CAAA;QACpB,iBAAiB,EAAG,OAAO,CAAC,iBAAiB;QAC7C,iBAAiB,EAAG,OAAO,CAAC,iBAAiB;IAC7C,IAAA,WAAW,EAAG,YAAY;QAC1B,sBAAsB,EAAG,OAAO,CAAC,kBAAA;;;;IAG7B,EAAA,MAAA,kBAAkB,SAAS,sBAAsB,CAAA;YACjD,cAAc,GAAA,MAAS,kBAAkB,CAAC,IAAI,EAAA,CAAA;YAC9C,KAAK,GAAY,cAAc,CAAC,KAAK,CAAA;IAC3C,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;IACpB,EAAA,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAA,CAAA;;UAC/C,kBAAkB,CAAC,MAAM,IAAI,GAAG,EAAA;OAEnC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA,CAAA;OAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;wBACjC,sCAAsC,GAAG,cAAc,CAAC,OAAO,CAAA,CAAA;IAC/D,GAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAI,CAAA,CAAA;IAChB,GAAA,OAAO,CAAC,KAAK,EAAA,CAAA;IACb,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;OACzC,UAAU;;IACT,KAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,IAAI,CAAA,CAAA;IACvB,KAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,KAAK,CAAA,CAAA;;QAEf,IAAI;;iBAEC,KAAK,EAAA;IAEb,GAAA,qCAAqC,GAAG,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAA,CAAA;;;IAE1E,GAAAC,MAAS,CAAC,OAAO,EAAEJ,YAAU,EAAE,KAAK,CAAA,CAAA;;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;;;IAMd,CAAA,MAAA,wBAAwB,SAAS,UAAgB,IAAA;IAEtD,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,KAAK,CAAA,CAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,IAAI,CAAA,CAAA;MACnB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA,CAAA;MAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;;IAClB,EAAA,IAAA,UAAU,CAAC,KAAK,EAAA;IAEnB,GAAA,qCAAqC,GAAG,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAA,CAAA;IAC1E,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAA,OAAA,CAAA,CAAA;IACxD,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAA,OAAA,CAAA,CAAA;uBACxD,OAAO,CAAC,kBAAkB,GAAG,IAAI,EAAA,OAAA,CAAA,CAAA;uBACjC,OAAO,CAAC,eAAe,GAAG,IAAI,EAAA,OAAA,CAAA,CAAA;OAC9BI,MAAS,CAAC,OAAO,EAAEJ,YAAU,EAAE,UAAU,CAAC,KAAK,CAAA,CAAA;IAC/C,GAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;IACpB,GAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;;WAId,gBAAgB,GAAA,MAAA;MACrB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;;IAC/B,EAAA,IAAA,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,EAAA;IAE/C,GAAA,aAAa,CAAC,qCAAqC,CAAA,CAAA;OACnD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAA,CAAA;IACzC,GAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;;IACpB,GAAA,SAAS,CAAC,UAAU;IACpB,KAAA,YAAA,CAAA,EAAA,EAAA,sCAAsC,GAAG,4BAA5C,CAAA;IACK,KAAA,YAAA,CAAA,EAAA,EAAA,sCAAsC,GAAG,yBAAyB,CAAA,CAAA;;IACpE,GAAA,SAAS,CAAC,UAAU;IAAG,KAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAI,CAAA;IAAG,KAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,IAAI,CAAA,CAAA;;OAC/D,UAAU;;SACT,SAAS,EAAA,CAAA;IACT,KAAA,YAAA,CAAA,EAAA,EAAA,sCAAsC,GAAG,EAAE,CAAA,CAAA;IAC3C,KAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,KAAK,CAAA,CAAA;0BAC5B,WAAW,GAAA,EAAA,CAAA,CAAA;SACX,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAA,CAAA;;QACzC,IAAI;;;;;WAKH,WAAW,GAAA,MAAA;IAChB,EAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,IAAI,CAAA,CAAA;IACrB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;;;WAGlB,cAAc,GAAA,YAAA;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,KAAK,CAAA,CAAA;IACtB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;uBACtB,WAAW,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,wBAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;MACjB,WAAW,CAAC,MAAM,KAAK,CAAC;IAAG,IAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,IAAI,CAAA;IAAG,IAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,KAAK,CAAA,CAAA;;;IAGhF,CAAA,MAAA,gBAAgB,SAAS,UAAU,IAAA;YAClC,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,oBAAA,CAAA,EAAA;IACzE,GAAA,MAAM,EAAE,MAAM;OACd,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,GACnB,KAAK,EAAG,UAAU,CAAC,KAAA,EAAA,CAAA;IAGpB,GAAA,CAAA,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAChB,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA,CAAA,CAAA;;MACjC,cAAc,EAAA,CAAA;;;IAGT,CAAA,MAAA,gBAAgB,SAAS,UAAgB,IAAA;IACxC,EAAA,MAAA,GAAG,GAAU,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,mBAAA,CAAA,EAAA;IACtF,GAAA,MAAM,EAAE,MAAM;OACd,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,GACnB,KAAK,EAAG,UAAU,CAAC,KAAA,EAAA,CAAA;SAGpB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAChB,KAAK,CAAC,KAAK,IAAA;OACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA,CAAA;;;UAEd,GAAG,CAAC,MAAM,KAAK,GAAG,EAAA;OAErB,cAAc,EAAA,CAAA;IACd,GAAA,wBAAwB,CAAC,UAAU,CAAA,CAAA;;;;IAIpC,EAAA,wBAAwB,CAAC,UAAU,CAAA,CAAA;;;cAG3B,UAAU,GAAA;MAClB,SAAS,EAAA,CAAA;;;cAGD,SAAS,GAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,IAAI,CAAA,CAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,IAAI,CAAA,CAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,KAAK,CAAA,CAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,KAAK,CAAA,CAAA;IACtB,EAAA,OAAO,CAAC,KAAK,EAAA,CAAA;IACb,EAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;IACzC,EAAAE,SAAY,EAAA,CAAA;;;;;;;;;;;IAqDkE,EAAA,OAAO,CAAC,WAAW,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAIjB,EAAA,OAAO,CAAC,YAAY,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAK3B,EAAA,OAAO,CAAC,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAEZ,EAAA,OAAO,CAAC,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAIrB,EAAA,OAAO,CAAC,kBAAkB,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAInE,EAAA,OAAO,CAAC,iBAAiB,GAAA,YAAA,CAAA,IAAA,CAAA,CAAA;;;;;IAwBD,CAAA,MAAA,aAAA,GAAA,UAAA,IAAA,gBAAgB,CAAC,UAAU,CAAA,CAAA;IAC3B,CAAA,MAAA,eAAA,GAAA,UAAA,IAAA,gBAAgB,CAAC,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC5OlE,CAAA,IAAA,OAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;IAAlB,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAFJ,CAAA,IAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;iBAAnB,OAAK,CAAA,CAAA;;iBAAe,GAAC,CAAA,CAAA;;;;;OAA5B,UAAoC,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAAhC,UAA4B,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;;;;;;IAAnB,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAFV,CAAA,IAAA,QAAA,SAAA,GAAC,MAAG,CAAC,GAAA,EAAA,CAAA;;;;;6BAMjB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA;;;;6BAClB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;6BACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;6BACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA;;;;;IARpB,EAAA,aAAA,GAAI,CAAC,CAAA,CAAA,CAAA,QAAQ,qBAAK,GAAW,IAAC,QAAQ,EAAA,OAAA/D,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAF5C,UAWI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAVH,UAA2B,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;;;;OAM3B,UAA4B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC5B,UAA6B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC7B,UAA6B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC7B,UAA8B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;uEAHzB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEAClB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAXpB,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;oCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OApBX,UAsCK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OArCJ,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAe,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAGjB,UA+BK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA9BJ,UA6BK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA5BJ,UA2BO,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;OA1BN,UASO,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OARN,UAOI,CAAA,KAAA,EAAA,EAAA,CAAA,CAAA;OANH,UAAqB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACrB,UAA4B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OAC5B,UAAuB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACvB,UAAwB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACxB,UAAwB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACxB,UAAgC,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OAGlC,UAeO,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;kCAdC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;mCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA3CN,WAAW,CAAA;SACX,QAAQ,GAAA,EAAA,CAAA;SACR,UAAU,CAAA;;KACd,OAAO,CAAA,YAAA;sBACN,WAAW,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;sBAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,oBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IAClB,EAAA,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAA,CAAA;;;KAG5C,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,UAAU,CAAA,CAAA;;;cAGhB,WAAW,GAAA;MACnB,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,oBAAA,CAAA,CAAA,CACnE,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CACjB,IAAI,CAAE,CAAC,IAAA,YAAA,CAAA,CAAA,EAAI,QAAQ,GAAG,CAAC,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICVpB,SAAU,IAAI,CAAC,YAA6B,EAAE,KAAa,EAAE,UAAkB,EAAE,aAAqB,EAAA;IAE3G,IAAA,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE1C,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;aAEe,OAAO,GAAA;IAEtB,IAAA,WAAW,EAAE,CAAC;IACf,CAAC;IAED,SAAS,KAAK,GAAA;IAEb,IAAA,MAAM,EAAE,CAAC;IACV,CAAC;IAED,SAAS,MAAM,GAAA;IAEd,IAAAe,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE4C,kBAAoB,CAAC,CAAC;IACpF,IAAA5C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE6C,kBAAoB,CAAC,CAAC;IAC5E;;;;;;;;;;;;;;;;;ICHI,CAAA,IAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA;;;IAAQ,CAAA,IAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;iBADzC,IACd,CAAA,CAAA;;iBAAyB,UAAM,CAAA,CAAA;;iBAAyB,UACzD,CAAA,CAAA;;iBAAK,IAAE,CAAA,CAAA;wCAAC,GAAkB,CAAA,CAAA,CAAA,CAAA,CAAA;iBAAC,GAC5B,CAAA,CAAA;;;;;;;;;OAJD,UAKI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAJH,UAGQ,CAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;OADP,UAAK,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;IADH,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAAQ,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;qFAChD,GAAkB,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;WA9BhB,KAKV,EAAA,GAAA,OAAA,CAAA;IAEG,CAAA,IAAA,kBAAkB,GAAG,EAAE,CAAA;;KAE3B,OAAO,CAAA,YAAA;IACF,EAAA,IAAA,KAAK,CAAC,WAAW,KAAK,YAAY,CAAC,QAAQ,EAAA;IAC9C,GAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,GAAG,UAAU,CAAA,CAAA;;IAG3B,GAAA,IAAA,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,UAAU,EAAA;IAC9C,IAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,aAAa,CAAA,CAAA;;;IAEhC,GAAA,IAAA,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,EAAA;YAC3C,kBAAkB,EAAA;IAAI,KAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,IAAI,CAAA,CAAA;;;IACpD,IAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,cAAc,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OC0GtC,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAAkE,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAA/B,GAAU,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAvBtC,GAAe,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;OAHvB,UAuBK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAtBJ,UAoBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAnBJ,UAkBU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCALD,GAAS,CAAA,CAAA,CAAA,CAAA;;;;oCAAd,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OATN,UAAuB,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;OACxB,UAMK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OALJ,UAAa,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;OACb,UAAqF,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;qDAAjB,GAAK,CAAA,CAAA,CAAA,CAAA;;OACzE,UAA+B,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;OAC/B,UAAuF,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;qDAAlB,GAAK,CAAA,CAAA,CAAA,CAAA;;OAC1E,UAAiC,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;OAElC,UAIM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;sDAT+D,GAAK,CAAA,CAAA,CAAA,CAAA;;;;sDAEJ,GAAK,CAAA,CAAA,CAAA,CAAA;;;;mCAInE,GAAS,CAAA,CAAA,CAAA,CAAA;;;;mCAAd,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;4BAAJ,MAAI,EAAA,CAAA,GAAA,WAAA,CAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;sCAAJ,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAXN,UAAkC,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAYX,GAAK,CAAA,EAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;4EAAL,GAAK,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAjB5B,GAAU,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;8BAHF,UAAU,CAAA,CAAA;;;;oCADY,GAAU,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAF9C,UAqCM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAnCL,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwB,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;gDADU,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAnFvC,MAAA,UAAU,GAAG,WAAW,CAAA;;;;;SAJ1B,IAAI,CAAA;SACJ,QAAQ,CAAA;IAIR,CAAA,IAAA,KAAK,GAAG,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA2Bb,SAAS,GAAA,EAAA,CAAA;;;IAGT,CAAA,IAAA,UAAU,GAAG,IAAI,CAAA;;IACjB,CAAA,IAAA,eAAe,GAAG,KAAK,CAAA;;KAG3B,OAAO,CAAA,YAAA;MACN,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAChF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;MAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;IAEZ,EAAA,MAAA,oBAAoB,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,sBAAA,CAAA,CAAA,CAAA;;YACjG,gBAAgB,GAAA,MAAS,oBAAoB,CAAC,IAAI,EAAA,CAAA;IACxD,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,gBAAgB,CAAA,CAAA;MAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA,CAAA;IACnB,EAAA,IAAA,SAAS,CAAC,MAAM,IAAI,CAAC,EACxB,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;MACvB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;;KAGtB,SAAS,CAAA,YAAA;IACR,EAAAM,OAAqB,EAAA,CAAA;;;oBAGP,iBAAiB,CAAC,aAAqB,EAAE,YAAwC,EAAA;MAC/FC,IAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,CAAA,CAAA;IACjE,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;cAGV,UAAU,GAAA;MAClB,SAAS,EAAA,CAAA;;;oBAGK,SAAS,GAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,IAAI,CAAA,CAAA;IACjB,EAAAD,OAAqB,EAAA,CAAA;;;sBAErB,SAAS,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACrF,sBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;MAClB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA,CAAA;IACnB,EAAA,IAAA,SAAS,CAAC,MAAM,IAAI,CAAC,EACxB,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;MACvB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;;;;;;;;;;MAyBmD,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;MAEJ,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;mCAKjC,CAAC,KAAK,iBAAiB,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,WAAW,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC5G/G,MAAM,aAAa,GAAG;IAC7B,EAAE,GAAG,EAAE,UAAU;IACjB,EAAE,MAAM,EAAE,uBAAuB;IACjC,EAAE,OAAO,EAAE,IAAI;IACf,EAAE,YAAY,EAAE,aAAa;IAC7B,EAAE,UAAU,GAAG,OAAO;IACtB,EAAE,UAAU,EAAEtE,MAAI,CAAC;IACnB,IAAI,SAAS,EAAE,WAAW;IAC1B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAC;IAClD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,YAAY,EAAEA,MAAI,CAAC;IACrB,IAAI,SAAS,EAAE,WAAW;IAC1B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAC;IACpD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;AACJ;IACA,EAAE,sBAAsB,EAAE,sBAAsB;IAChD,EAAE,GAAG,EAAE,QAAQ;IACf,CAAC;;;;;;;;;;;wBCpCe,aAAa,EAAA;;;;yDAAuB,GAAgB,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAb5D,CAAA,MAAA,gBAAgB,GAAI,KAAK,IAAA;IAC7B,EAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAAA,CAAA;;;IAGpD,EAAA,OAAO,CAAC,sBAAsB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTlC,UAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QACnB,MAAM,EAAE,QAAQ,CAAC,IAAI;IACrB,IAAA,KAAK,EAAE;;IAEN,KAAA;IACD,CAAA;;;;;;;;"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_layouts.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_layouts.svelte index db6cbc1e..c0773aca 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_layouts.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_layouts.svelte @@ -1,6 +1,8 @@ + +
    +

    temp, for testing :

    + + + + + + + + + + + +
    From 1c2d202ec1b5c87c9c08383f6fc18bd713154ce5 Mon Sep 17 00:00:00 2001 From: simplonco Date: Wed, 4 Jan 2023 18:21:01 +0100 Subject: [PATCH 06/35] chat svelte now have a global variable socket --- .../nestjs/api_back/src/app.module.ts | 2 + .../api_back/src/chat/chat.controller.ts | 11 + .../nestjs/api_back/src/chat/chat.gateway.ts | 17 +- .../nestjs/api_back/src/chat/chat.module.ts | 22 +- .../nestjs/api_back/src/chat/chat.service.ts | 198 +-------------- .../svelte/api_front/public/build/bundle.js | 236 ++++++++++-------- .../api_front/public/build/bundle.js.map | 2 +- .../api_front/src/pieces/chat/Chat.svelte | 8 +- .../src/pieces/chat/Chat_button.svelte | 49 +++- .../src/pieces/chat/Chat_socket.svelte | 17 ++ .../src/pieces/chat/Layout_create.svelte | 42 +++- .../src/pieces/chat/Layout_new.svelte | 2 +- .../src/pieces/chat/Layout_room.svelte | 15 +- 13 files changed, 277 insertions(+), 344 deletions(-) create mode 100644 srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts create mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte diff --git a/srcs/requirements/nestjs/api_back/src/app.module.ts b/srcs/requirements/nestjs/api_back/src/app.module.ts index 81775eba..e991d39c 100644 --- a/srcs/requirements/nestjs/api_back/src/app.module.ts +++ b/srcs/requirements/nestjs/api_back/src/app.module.ts @@ -9,6 +9,7 @@ import { AuthenticationModule } from './auth/42/authentication.module'; import { PassportModule } from '@nestjs/passport'; import { GameModule } from './game/game.module'; import { ChatGateway } from './chat/chat.gateway'; +import { ChatModule } from './chat/chat.module'; @Module({ imports: [ @@ -30,6 +31,7 @@ import { ChatGateway } from './chat/chat.gateway'; //avec une classe pour le module synchronize: true, }), + ChatModule, // GameModule, ], controllers: [AppController], diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts new file mode 100644 index 00000000..ee35d478 --- /dev/null +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts @@ -0,0 +1,11 @@ +import { Controller, Post, Body } from '@nestjs/common'; + +@Controller('/chat/create') +export class ChatController { + @Post() + async handleSubmit(@Body() formData: any) { + console.log("------ create:"); + console.log(formData); + } +} + diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts index c6d88417..1876647f 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts @@ -8,6 +8,7 @@ import { } from '@nestjs/websockets'; import { UsersService } from 'src/users/users.service'; import { PaginationQueryDto } from 'src/common/dto/pagination-query.dto'; +import { ChatService } from 'src/chat/chat.service'; @WebSocketGateway(5000, { path: '/chat', @@ -19,6 +20,7 @@ export class ChatGateway constructor ( private usersService: UsersService, + private chatService: ChatService, ) {} @WebSocketServer() @@ -33,11 +35,16 @@ export class ChatGateway console.log('---- client disconnected :', client.id); } - @SubscribeMessage('') - handleMessage(): void { - const paginationQuery = new PaginationQueryDto(); - const users = this.usersService.findAll(paginationQuery); - console.log('users :', users); +// @UseGuards(AuthenticateGuard) + @SubscribeMessage('message') + handleMessage(@MessageBody() message: string): void { + console.log('-------- msg --------------'); + console.log(message); +// const paginationQuery = new PaginationQueryDto(); +// const users = this.usersService.findAll(paginationQuery); +// console.log('users :', users); +// this.server.emit('message', message); + this.chatService.add_message(this.server, message); } } diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts index d67a4b9d..a8a303e6 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts @@ -1,16 +1,12 @@ -//import { Module } from '@nestjs/common'; -//import { TypeOrmModule } from '@nestjs/typeorm'; -//import { FriendshipService } from './friendship.service'; -//import { FriendshipController } from './friendship.controller'; -//import { Friendship } from './entities/friendship.entity'; -//import { User } from '../users/entities/user.entity'; +import { Module } from '@nestjs/common'; +import { ChatController } from './chat.controller'; +import { ChatService } from './chat.service'; -//@Module({ -// imports: [TypeOrmModule.forFeature([Friendship, User])], -// providers: [FriendshipService], -// controllers: [FriendshipController], -// exports: [FriendshipService], -//}) +@Module({ + providers: [ChatService], + controllers: [ChatController], + exports: [ChatService], +}) -//export class FriendshipsModule {} +export class ChatModule {} diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index 80b3864d..7a798646 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -1,204 +1,18 @@ -//import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common'; + //import { InjectRepository } from '@nestjs/typeorm'; //import { User } from 'src/users/entities/user.entity'; //import { Repository } from 'typeorm'; -//import { CreateFriendshipDto } from './dto/create-friendship.dto'; -//import { Friendship, FriendshipStatus } from './entities/friendship.entity'; -/* @Injectable() -export class FriendshipService { +export class ChatService { constructor( - @InjectRepository(Friendship) - private readonly friendshipRepository: Repository, - @InjectRepository(User) - private readonly userRepository: Repository, + // @InjectRepository(User) + // private readonly userRepository: Repository, ) { } - - async findOneFriend(friendshipId: string, username: string) { - const friendship = await this.friendshipRepository.find({ where: { id: +friendshipId, senderUsername: username, status: FriendshipStatus.ACCEPTED } }); - if (!friendship) - throw new HttpException(`The requested friend not found.`, HttpStatus.NOT_FOUND); - return friendship; - } - - async findOneBlocked(friendshipId: string, username: string) { - const friendship = await this.friendshipRepository.find({ where: { id: +friendshipId, senderUsername: username, status: FriendshipStatus.BLOCKED } }); - if (!friendship) - throw new HttpException(`The requested blocked not found.`, HttpStatus.NOT_FOUND); - return friendship; - } - - async findAllFriends(username: string) { - const friendship = await this.friendshipRepository - .createQueryBuilder('friendship') - .where('friendship.status = :status', { status: FriendshipStatus.ACCEPTED }) - .andWhere('friendship.receiverUsername = :addressee', { addressee: username }) - .orWhere('friendship.senderUsername = :requester', { requester: username }) - .andWhere('friendship.status = :status', { status: FriendshipStatus.ACCEPTED }) - .getMany(); - for (const friend of friendship) - console.log("FRIENDSHIP : " + friend.status); - return friendship; - } - - async findAllBlockedFriends(username: string) { - const friendships : Friendship[] = await this.friendshipRepository - .createQueryBuilder('friendship') - .where('friendship.senderUsername = :requestee', { requestee: username }) - .andWhere('friendship.status = :status', { status: FriendshipStatus.BLOCKED }) - .getMany(); - let partialFriendship : Partial[] = []; - for (const friendship of friendships) { - partialFriendship.push({id: friendship.id, date: friendship.date, senderUsername: friendship.senderUsername, receiverUsername: friendship.receiverUsername, status: friendship.status}); - } - return partialFriendship; - } - - async findAllPendantRequestsForFriendship(username: string) { - const friendship = await this.friendshipRepository - .createQueryBuilder('friendship') - .where('friendship.senderUsername = :requestee', { requestee: username }) - .andWhere('friendship.status = :status', { status: FriendshipStatus.REQUESTED }) - .getMany(); - let partialFriendship : Partial[] = []; - for (const friend of friendship) { - console.log("FRIENDSHIP : " + friend); - partialFriendship.push({id: friend.id, senderUsername: friend.senderUsername, receiverUsername: friend.receiverUsername, status: friend.status}); - } - console.log("Pendant requests : " + partialFriendship); - return partialFriendship; - } - - async findAllReceivedRequestsForFriendship(username: string) { - const friendship = await this.friendshipRepository - .createQueryBuilder('friendship') - .where('friendship.receiverUsername = :addressee', { addressee: username }) - .andWhere('friendship.status = :status', { status: FriendshipStatus.REQUESTED }) - .getMany(); - let partialFriendship : Partial[] = []; - for (const friend of friendship) { - partialFriendship.push({id: friend.id, senderUsername: friend.senderUsername, receiverUsername: friend.receiverUsername, status: friend.status}); - } - return partialFriendship; - } - - async create(createFriendshipDto: CreateFriendshipDto, creator : User) : Promise > { - console.log("DTO : \n") - console.log({...createFriendshipDto}) - const receiver = await this.userRepository.findOneBy({username: createFriendshipDto.receiverUsername}); - if (!receiver) - throw new HttpException(`The addressee does not exist.`, HttpStatus.NOT_FOUND); - if (createFriendshipDto.status !== FriendshipStatus.REQUESTED && createFriendshipDto.status !== FriendshipStatus.BLOCKED) - throw new HttpException(`The status is not valid.`, HttpStatus.NOT_FOUND); - const friendship = await this.friendshipRepository.findOneBy({ sender: creator, receiver: receiver }); - if (friendship) { - if (friendship.status && friendship.status === FriendshipStatus.ACCEPTED) - throw new HttpException(`The friendship request has already been accepted.`, HttpStatus.OK); - else if (friendship.status && friendship.status === FriendshipStatus.REQUESTED) - throw new HttpException(`The friendship request has already been sent the ${friendship.date}.`, HttpStatus.OK); - else if (friendship.status && friendship.status === FriendshipStatus.BLOCKED) - throw new HttpException(`We can't do that`, HttpStatus.OK); - else if (friendship.status && friendship.status === FriendshipStatus.DECLINED) - throw new HttpException(`The request has been declined.`, HttpStatus.OK); - } - const newFriendship = new Friendship(); - newFriendship.sender = creator; - newFriendship.senderUsername = creator.username; - newFriendship.receiver = receiver; - newFriendship.receiverUsername = receiver.username; - newFriendship.status = createFriendshipDto.status; - const savedFriendship = this.friendshipRepository.save(newFriendship); - const partialFriendship : Partial = { - id : (await savedFriendship).id, - date : (await savedFriendship).date, - receiverUsername: (await savedFriendship).receiverUsername, - status : (await savedFriendship).status - } - console.log({...partialFriendship}) - return partialFriendship; - } - - async acceptFriendship(relationshipId: string, user: User) { - const relation = await this.friendshipRepository.findOneBy({ id: +relationshipId }); - if (!relation) - throw new HttpException(`The requested relationship not found.`, HttpStatus.NOT_FOUND); - if (relation.sender.id === user.id) { - throw new HttpException(`You can't accept your own request.`, HttpStatus.NOT_FOUND); - } - relation.status = FriendshipStatus.ACCEPTED; - const savedFriendship = this.friendshipRepository.save(relation); - const partialFriendship : Partial = { - id : (await savedFriendship).id, - date : (await savedFriendship).date, - receiverUsername: (await savedFriendship).receiverUsername, - status : (await savedFriendship).status - } - return partialFriendship; - } - - async declineFriendship(relationshipId: string, user: User) { - const relation = await this.friendshipRepository.findOneBy({ id: +relationshipId }); - if (!relation) - throw new HttpException(`The requested relationship not found.`, HttpStatus.NOT_FOUND); - if (relation.sender.id === user.id) { - throw new HttpException(`You can't accept your own request.`, HttpStatus.NOT_FOUND); - } - relation.status = FriendshipStatus.DECLINED; - const savedFriendship = this.friendshipRepository.save(relation); - const partialFriendship : Partial = { - id : (await savedFriendship).id, - date : (await savedFriendship).date, - receiverUsername: (await savedFriendship).receiverUsername, - status : (await savedFriendship).status - } - return partialFriendship - } - - async blockFriendship(relationshipId: string, user: User) { - const relation = await this.friendshipRepository.findOneBy({ id: +relationshipId }); - if (!relation) - throw new HttpException(`The requested relationship not found.`, HttpStatus.NOT_FOUND); - if (relation.sender.id === user.id) { - throw new HttpException(`You can't accept your own request.`, HttpStatus.NOT_FOUND); - } - relation.status = FriendshipStatus.BLOCKED; - const savedFriendship = this.friendshipRepository.save(relation); - const partialFriendship : Partial = { - id : (await savedFriendship).id, - date : (await savedFriendship).date, - receiverUsername: (await savedFriendship).receiverUsername, - status : (await savedFriendship).status - } - return partialFriendship - } - - async removeFriendship(relationshipId: string, user : User) { - const friendship = await this.friendshipRepository.findOneBy({ id: +relationshipId }); - if (!friendship) - throw new HttpException(`Your friend could not be deleted.`, HttpStatus.NOT_FOUND); - if (friendship.sender.id !== user.id || friendship.receiver.id !== user.id) { - throw new HttpException(`You can't do that.`, HttpStatus.FORBIDDEN); - } - return this.friendshipRepository.remove(friendship); - } - - async findIfUserIsBlockedOrHasBlocked(userConnectedId: string, userToFindId: string) { - console.log("finding if user is blocked") - const friendship = await this.friendshipRepository - .createQueryBuilder('friendship') - .where('friendship.senderUsername = :requestee', { requestee: userConnectedId }) - .orWhere('friendship.senderUsername = :requesteeBis', { requesteeBis: userToFindId }) - .andWhere('friendship.status = :status', { status: FriendshipStatus.BLOCKED }) - .getOne(); - if (friendship) { - console.log('we are blocked in friendship.service') - return true; - } - return false; + async add_message(server, message) { + return server.emit('message', message); } } -*/ diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 8f479b98..edd57657 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -1228,7 +1228,7 @@ var app = (function () { /* node_modules/svelte-spa-router/Router.svelte generated by Svelte v3.53.1 */ - const { Error: Error_1, Object: Object_1, console: console_1$9 } = globals; + const { Error: Error_1, Object: Object_1, console: console_1$b } = globals; // (267:0) {:else} function create_else_block$6(ctx) { @@ -2008,7 +2008,7 @@ var app = (function () { const writable_props = ['routes', 'prefix', 'restoreScrollState']; Object_1.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$9.warn(` was created with unknown prop '${key}'`); + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$b.warn(` was created with unknown prop '${key}'`); }); function routeEvent_handler(event) { @@ -2292,7 +2292,7 @@ var app = (function () { /* src/pieces/Header.svelte generated by Svelte v3.53.1 */ - const { console: console_1$8 } = globals; + const { console: console_1$a } = globals; const file$u = "src/pieces/Header.svelte"; // (27:39) @@ -2551,7 +2551,7 @@ var app = (function () { const writable_props = []; Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$8.warn(`
    was created with unknown prop '${key}'`); + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$a.warn(`
    was created with unknown prop '${key}'`); }); const click_handler = () => push('/'); @@ -3506,10 +3506,10 @@ var app = (function () { button = element("button"); p = element("p"); if (default_slot) default_slot.c(); - attr_dev(p, "class", "svelte-b72wpv"); + attr_dev(p, "class", "svelte-1qngx3f"); add_location(p, file$q, 24, 1, 416); attr_dev(button, "title", /*my_title*/ ctx[1]); - attr_dev(button, "class", button_class_value = "" + (null_to_empty(/*my_class*/ ctx[0]) + " svelte-b72wpv")); + attr_dev(button, "class", button_class_value = "" + (null_to_empty(/*my_class*/ ctx[0]) + " svelte-1qngx3f")); add_location(button, file$q, 23, 0, 327); }, l: function claim(nodes) { @@ -3565,7 +3565,7 @@ var app = (function () { attr_dev(button, "title", /*my_title*/ ctx[1]); } - if (!current || dirty & /*my_class*/ 1 && button_class_value !== (button_class_value = "" + (null_to_empty(/*my_class*/ ctx[0]) + " svelte-b72wpv"))) { + if (!current || dirty & /*my_class*/ 1 && button_class_value !== (button_class_value = "" + (null_to_empty(/*my_class*/ ctx[0]) + " svelte-1qngx3f"))) { attr_dev(button, "class", button_class_value); } }, @@ -7853,7 +7853,20 @@ var app = (function () { connect: lookup, }); + /* src/pieces/chat/Chat_socket.svelte generated by Svelte v3.53.1 */ + + const address = `http://${'transcendance'}:${'8080'}`; + const socket$1 = lookup(address, { path: '/chat' }); + const userPomise = fetch(`${address}/api/v2/user`).then(x => x.json()); + let user; + + userPomise.then(data => { + user = data; + }); + /* src/pieces/chat/Layout_room.svelte generated by Svelte v3.53.1 */ + + const { console: console_1$9 } = globals; const file$m = "src/pieces/chat/Layout_room.svelte"; function get_each_context$4(ctx, list, i) { @@ -7862,7 +7875,7 @@ var app = (function () { return child_ctx; } - // (47:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t

    confirm password :

    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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A;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,Q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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QA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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte index f8ba86f6..eecc64a5 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte @@ -3,14 +3,12 @@ import Layouts from './Chat_layouts.svelte'; export let color = "transparent"; + import { onMount } from 'svelte'; /* web sockets with socket.io */ - import { onMount } from 'svelte'; - import io from 'socket.io-client'; - const socket = io(`http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`, { - path: '/chat' - }); + import { socket } from './Chat_socket.svelte'; + onMount(async => { socket.on('connect', function(){ console.log("socket.io connected"); diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_button.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_button.svelte index 794ece70..bb7fc425 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_button.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_button.svelte @@ -67,7 +67,7 @@ } - /* for btn list + /* .list */ .list:not(:hover) { background-color: rgb(240, 240, 240); @@ -77,14 +77,14 @@ } - /* for transparent btn + /* .transparent */ .transparent:not(:hover) { background-color: transparent; } - /* for deactivated btn + /* .deactivated */ .deactivate { background-color: transparent; @@ -92,7 +92,40 @@ } - /* for icon + /* .border + */ + .border { + border: 1px solid rgb(150, 150, 150); + } + + + /* .light + */ + .light { + background-color: rgb(233, 233, 233); + } + .light.border { + border: 1px solid rgb(204, 204, 204); + } + .light:hover { + background-color: rgb(220, 220, 220); + } + .light.border:hover { + border-color: rgb(200, 200, 200); + } + .light:active { + background-color: rgb(210, 210, 210); + } + + + /* .thin + */ + .thin p { + padding: 5px; + } + + + /* .icon */ .icon p { display: none; @@ -107,7 +140,7 @@ } - /* for 3 dots btn + /* .dots */ .dots::after { content: '\2807'; @@ -123,7 +156,7 @@ } - /* for close btn + /* .close */ .close::before { content: ""; @@ -136,7 +169,7 @@ } - /* for back btn + /* .back */ .back::before { content: ""; @@ -151,7 +184,7 @@ } - /* for blocked user + /* .blocked https://www.fileformat.info/info/unicode/category/So/list.htm U+1F512 LOCK 🔒 U+1F513 OPEN LOCK 🔓 diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte new file mode 100644 index 00000000..671c035c --- /dev/null +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte @@ -0,0 +1,17 @@ + diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte index 5e1befd5..9a22a597 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte @@ -5,6 +5,20 @@ export let layout = ""; export let back = ""; + function handleSubmit(evt) + { + let formIsValid = evt.target.checkValidity(); + console.log("----- formIsValid:"); + console.log(formIsValid); + if (formIsValid) + { + fetch('/api/v2/chat/create', { + method: 'POST', + body: evt.target, + }) + } + } +
    @@ -25,8 +39,17 @@ -
    -
    +
    + + @@ -43,14 +66,11 @@
    -

    confirm password :

    -
    -
    ","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QA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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAA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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte index eecc64a5..47c732df 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte @@ -9,7 +9,8 @@ */ import { socket } from './Chat_socket.svelte'; - onMount(async => { + onMount(async() => { + await socket; socket.on('connect', function(){ console.log("socket.io connected"); }); diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte index 671c035c..bdecf72f 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte @@ -1,17 +1,25 @@ + diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte index d7b2e4ec..861f1827 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte @@ -5,10 +5,10 @@ import Msg from './Chat_msg.svelte'; import { socket, user } from './Chat_socket.svelte'; - socket.on('message', (data) => { - console.log("received msg :"); - console.log(data); - add_msg("other", data); + socket.on('message', (name, message) => { + console.log(name) + console.log(message) + add_msg(name, message); }); export let layout = ""; @@ -18,17 +18,15 @@ let text_area; let msgs = []; - function add_msg(from, the_msg) + function add_msg(from, message) { - msgs = [...msgs, { content: the_msg, name: from }]; + if (from === user.username) + from = "me"; + msgs = [...msgs, { content: message, name: from }]; } function send_msg() { - console.log("user:"); - console.log(user); - console.log(user.username); - msg = msg.trim(); if (msg.length > 0) { socket.emit('message', msg); From e16dc563140b97a6200630ff8014c8cdb4bb561c Mon Sep 17 00:00:00 2001 From: simplonco Date: Thu, 5 Jan 2023 09:21:06 +0100 Subject: [PATCH 08/35] msgs are in a store --- .../svelte/api_front/public/build/bundle.js | 190 +++++++++--------- .../api_front/public/build/bundle.js.map | 2 +- .../api_front/src/pieces/chat/Chat.svelte | 87 ++++---- .../src/pieces/chat/Layout_room.svelte | 14 +- .../api_front/src/pieces/chat/Store_msg.js | 5 + 5 files changed, 154 insertions(+), 144 deletions(-) create mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/Store_msg.js diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 48fb34b4..39f7aec9 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -1228,7 +1228,7 @@ var app = (function () { /* node_modules/svelte-spa-router/Router.svelte generated by Svelte v3.53.1 */ - const { Error: Error_1, Object: Object_1, console: console_1$b } = globals; + const { Error: Error_1, Object: Object_1, console: console_1$a } = globals; // (267:0) {:else} function create_else_block$6(ctx) { @@ -2008,7 +2008,7 @@ var app = (function () { const writable_props = ['routes', 'prefix', 'restoreScrollState']; Object_1.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$b.warn(` was created with unknown prop '${key}'`); + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$a.warn(` was created with unknown prop '${key}'`); }); function routeEvent_handler(event) { @@ -2292,7 +2292,7 @@ var app = (function () { /* src/pieces/Header.svelte generated by Svelte v3.53.1 */ - const { console: console_1$a } = globals; + const { console: console_1$9 } = globals; const file$u = "src/pieces/Header.svelte"; // (27:39) @@ -2551,7 +2551,7 @@ var app = (function () { const writable_props = []; Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$a.warn(`
    was created with unknown prop '${key}'`); + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$9.warn(`
    was created with unknown prop '${key}'`); }); const click_handler = () => push('/'); @@ -7868,9 +7868,9 @@ var app = (function () { }); }); - /* src/pieces/chat/Layout_room.svelte generated by Svelte v3.53.1 */ + let msgs = writable([]); - const { console: console_1$9 } = globals; + /* src/pieces/chat/Layout_room.svelte generated by Svelte v3.53.1 */ const file$m = "src/pieces/chat/Layout_room.svelte"; function get_each_context$4(ctx, list, i) { @@ -7879,7 +7879,7 @@ var app = (function () { return child_ctx; } - // (54:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":";;;;;IAAA,SAAS,IAAI,GAAG,GAAG;IACnB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;IAC1B;IACA,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG;IACvB,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD,SAAS,UAAU,CAAC,KAAK,EAAE;IAC3B,IAAI,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;IAClF,CAAC;IACD,SAAS,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACzD,IAAI,OAAO,CAAC,aAAa,GAAG;IAC5B,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACzC,KAAK,CAAC;IACN,CAAC;IACD,SAAS,GAAG,CAAC,EAAE,EAAE;IACjB,IAAI,OAAO,EAAE,EAAE,CAAC;IAChB,CAAC;IACD,SAAS,YAAY,GAAG;IACxB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,SAAS,OAAO,CAAC,GAAG,EAAE;IACtB,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,SAAS,WAAW,CAAC,KAAK,EAAE;IAC5B,IAAI,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;IACvC,CAAC;IACD,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,KAAK,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,oBAAoB,CAAC;IACzB,SAAS,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE;IACzC,IAAI,IAAI,CAAC,oBAAoB,EAAE;IAC/B,QAAQ,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3D,KAAK;IACL,IAAI,oBAAoB,CAAC,IAAI,GAAG,GAAG,CAAC;IACpC,IAAI,OAAO,WAAW,KAAK,oBAAoB,CAAC,IAAI,CAAC;IACrD,CAAC;IAID,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE;IACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE;IAChE,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAC9E,KAAK;IACL,CAAC;IACD,SAAS,SAAS,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE;IACxC,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;IACvB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,CAAC,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC;IACjE,CAAC;IAMD,SAAS,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzD,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,SAAS,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IACnD,IAAI,IAAI,UAAU,EAAE;IACpB,QAAQ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACxE,QAAQ,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvC,KAAK;IACL,CAAC;IACD,SAAS,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IACxD,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;IAC9B,UAAU,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,UAAU,OAAO,CAAC,GAAG,CAAC;IACtB,CAAC;IACD,SAAS,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1D,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;IAC7B,QAAQ,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;IACzC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACtC,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC;IAC9B,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;IAC7C,gBAAgB,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,aAAa;IACb,YAAY,OAAO,MAAM,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IACpC,KAAK;IACL,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC;IACzB,CAAC;IACD,SAAS,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE;IAClG,IAAI,IAAI,YAAY,EAAE;IACtB,QAAQ,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAClG,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC3C,KAAK;IACL,CAAC;IAKD,SAAS,wBAAwB,CAAC,OAAO,EAAE;IAC3C,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE;IACjC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC;IACzB,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;IACzC,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAgCD,SAAS,aAAa,CAAC,KAAK,EAAE;IAC9B,IAAI,OAAO,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;IACtC,CAAC;IAMD,SAAS,gBAAgB,CAAC,aAAa,EAAE;IACzC,IAAI,OAAO,aAAa,IAAI,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9F,CAAC;AACD;IACA,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IAChD,IAAI,GAAG,GAAG,SAAS;IACnB,MAAM,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;IACpC,MAAM,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,SAAS,GAAG,EAAE,IAAI,qBAAqB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AAQ7D;IACA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACxB,SAAS,SAAS,CAAC,GAAG,EAAE;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI;IAC1B,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;IAC1B,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;IACrB,SAAS;IACT,KAAK,CAAC,CAAC;IACP,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;IACxB,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAOD;IACA;IACA;IACA;IACA,SAAS,IAAI,CAAC,QAAQ,EAAE;IACxB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;IACxB,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,IAAI,OAAO;IACX,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,IAAI;IACxC,YAAY,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1D,SAAS,CAAC;IACV,QAAQ,KAAK,GAAG;IAChB,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,SAAS;IACT,KAAK,CAAC;IACN,CAAC;IAuGD,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;IAC9B,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAUD,SAAS,kBAAkB,CAAC,IAAI,EAAE;IAClC,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,QAAQ,CAAC;IACxB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;IAC5E,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;IAC3B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,SAAS,uBAAuB,CAAC,IAAI,EAAE;IACvC,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;IAC/D,IAAI,OAAO,aAAa,CAAC,KAAK,CAAC;IAC/B,CAAC;IACD,SAAS,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE;IACxC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB,CAAC;IAyBD,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IACtC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;IAC9C,CAAC;IASD,SAAS,MAAM,CAAC,IAAI,EAAE;IACtB,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;IACzB,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK;IACL,CAAC;IACD,SAAS,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE;IAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACnD,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC;IACzB,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvC,KAAK;IACL,CAAC;IACD,SAAS,OAAO,CAAC,IAAI,EAAE;IACvB,IAAI,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAgBD,SAAS,WAAW,CAAC,IAAI,EAAE;IAC3B,IAAI,OAAO,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IACD,SAAS,IAAI,CAAC,IAAI,EAAE;IACpB,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,KAAK,GAAG;IACjB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,SAASA,OAAK,GAAG;IACjB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;IAC/C,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IACD,SAAS,eAAe,CAAC,EAAE,EAAE;IAC7B,IAAI,OAAO,UAAU,KAAK,EAAE;IAC5B,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;IAC/B;IACA,QAAQ,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,KAAK,CAAC;IACN,CAAC;IAsBD,SAAS,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IACtC,IAAI,IAAI,KAAK,IAAI,IAAI;IACrB,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,KAAK;IACnD,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAgED,SAAS,QAAQ,CAAC,OAAO,EAAE;IAC3B,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IA4HD,SAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE;IACvC,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;IAC7C,CAAC;IASD,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;IACxB,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACvC,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC;IACzE,KAAK;IACL,CAAC;IACD,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE;IACtC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACvD,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzC,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;IACtC,YAAY,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACnC,YAAY,OAAO;IACnB,SAAS;IACT,KAAK;IACL,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IAOD,SAAS,YAAY,CAAC,MAAM,EAAE;IAC9B,IAAI,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,eAAe,IAAI,eAAe,CAAC,OAAO,CAAC;IACtD,CAAC;IAyDD,SAAS,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7C,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE;IAClF,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;IAyBD,MAAM,OAAO,CAAC;IACd,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,EAAE;IAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrB,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IACrB,YAAY,IAAI,IAAI,CAAC,MAAM;IAC3B,gBAAgB,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD;IACA,gBAAgB,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;IAC5B,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS;IACT,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC/C,KAAK;IACL,IAAI,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACnD,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9C,SAAS;IACT,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;IACjB,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrB,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,CAAC,GAAG;IACR,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK;IACL,CAAC;AAsCD;IACA;IACA;IACA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf;IACA,SAAS,IAAI,CAAC,GAAG,EAAE;IACnB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;IACvB,IAAI,OAAO,CAAC,EAAE;IACd,QAAQ,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC;IACtB,CAAC;IACD,SAAS,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE;IAC7C,IAAI,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC1E,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE;IACrE,IAAI,MAAM,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;IACvC,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,QAAQ,SAAS,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,KAAK;IACL,IAAI,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3B,QAAQ,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxF,KAAK;IACL,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IACjD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChH,IAAI,MAAM,IAAI,CAAC,CAAC;IAChB,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE;IACjC,IAAI,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI;IACrC,UAAU,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IACxC,UAAU,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjD,KAAK,CAAC;IACN,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClD,IAAI,IAAI,OAAO,EAAE;IACjB,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,MAAM,IAAI,OAAO,CAAC;IAC1B,QAAQ,IAAI,CAAC,MAAM;IACnB,YAAY,WAAW,EAAE,CAAC;IAC1B,KAAK;IACL,CAAC;IACD,SAAS,WAAW,GAAG;IACvB,IAAI,GAAG,CAAC,MAAM;IACd,QAAQ,IAAI,MAAM;IAClB,YAAY,OAAO;IACnB,QAAQ,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI;IACvC,YAAY,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;IAClD;IACA,YAAY,IAAI,SAAS;IACzB,gBAAgB,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,SAAS,CAAC,CAAC;IACX,QAAQ,cAAc,CAAC,KAAK,EAAE,CAAC;IAC/B,KAAK,CAAC,CAAC;IACP,CAAC;AAsED;IACA,IAAI,iBAAiB,CAAC;IACtB,SAAS,qBAAqB,CAAC,SAAS,EAAE;IAC1C,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAClC,CAAC;IACD,SAAS,qBAAqB,GAAG;IACjC,IAAI,IAAI,CAAC,iBAAiB;IAC1B,QAAQ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC5E,IAAI,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAWD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,OAAO,CAAC,EAAE,EAAE;IACrB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IACD;IACA;IACA;IACA;IACA;IACA,SAAS,WAAW,CAAC,EAAE,EAAE;IACzB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,SAAS,CAAC,EAAE,EAAE;IACvB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,qBAAqB,GAAG;IACjC,IAAI,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC;IAC9C,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK;IAC1D,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,IAAI,SAAS,EAAE;IACvB;IACA;IACA,YAAY,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,YAAY,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI;IAC5C,gBAAgB,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1C,aAAa,CAAC,CAAC;IACf,YAAY,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC3C,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK,CAAC;IACN,CAAC;IA0CD;IACA;IACA;IACA,SAAS,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE;IAClC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,IAAI,SAAS,EAAE;IACnB;IACA,QAAQ,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,KAAK;IACL,CAAC;AACD;IACA,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAE5B,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B,MAAM,eAAe,GAAG,EAAE,CAAC;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3C,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,SAAS,eAAe,GAAG;IAC3B,IAAI,IAAI,CAAC,gBAAgB,EAAE;IAC3B,QAAQ,gBAAgB,GAAG,IAAI,CAAC;IAChC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,KAAK;IACL,CAAC;IACD,SAAS,IAAI,GAAG;IAChB,IAAI,eAAe,EAAE,CAAC;IACtB,IAAI,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IACD,SAAS,mBAAmB,CAAC,EAAE,EAAE;IACjC,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,SAAS,kBAAkB,CAAC,EAAE,EAAE;IAChC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,SAAS,KAAK,GAAG;IACjB,IAAI,MAAM,eAAe,GAAG,iBAAiB,CAAC;IAC9C,IAAI,GAAG;IACP;IACA;IACA,QAAQ,OAAO,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE;IACnD,YAAY,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzD,YAAY,QAAQ,EAAE,CAAC;IACvB,YAAY,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC7C,YAAY,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjC,SAAS;IACT,QAAQ,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,QAAQ,QAAQ,GAAG,CAAC,CAAC;IACrB,QAAQ,OAAO,iBAAiB,CAAC,MAAM;IACvC,YAAY,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC;IACtC;IACA;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IAC7D,YAAY,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC/C;IACA,gBAAgB,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,gBAAgB,QAAQ,EAAE,CAAC;IAC3B,aAAa;IACb,SAAS;IACT,QAAQ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,KAAK,QAAQ,gBAAgB,CAAC,MAAM,EAAE;IACtC,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE;IACnC,QAAQ,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC;IAChC,KAAK;IACL,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IACD,SAAS,MAAM,CAAC,EAAE,EAAE;IACpB,IAAI,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;IACpB,QAAQ,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IAC/B,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrD,KAAK;IACL,CAAC;AACD;IACA,IAAI,OAAO,CAAC;IACZ,SAAS,IAAI,GAAG;IAChB,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM;IAC3B,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IACzC,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,IAAI,MAAM,CAAC;IACX,SAAS,YAAY,GAAG;IACxB,IAAI,MAAM,GAAG;IACb,QAAQ,CAAC,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,EAAE;IACb,QAAQ,CAAC,EAAE,MAAM;IACjB,KAAK,CAAC;IACN,CAAC;IACD,SAAS,YAAY,GAAG;IACxB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IACnB,QAAQ,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK;IACL,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,SAAS,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE;IACrC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE;IAC1B,QAAQ,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK;IACL,CAAC;IACD,SAAS,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;IACxD,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE;IAC1B,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B,YAAY,OAAO;IACnB,QAAQ,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B,QAAQ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;IAC5B,YAAY,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,YAAY,IAAI,QAAQ,EAAE;IAC1B,gBAAgB,IAAI,MAAM;IAC1B,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,gBAAgB,QAAQ,EAAE,CAAC;IAC3B,aAAa;IACb,SAAS,CAAC,CAAC;IACX,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK;IACL,SAAS,IAAI,QAAQ,EAAE;IACvB,QAAQ,QAAQ,EAAE,CAAC;IACnB,KAAK;IACL,CAAC;IACD,MAAM,eAAe,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACxC,SAAS,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE;IAChD,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;IACxB,IAAI,IAAI,cAAc,CAAC;IACvB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;IAChB,IAAI,SAAS,OAAO,GAAG;IACvB,QAAQ,IAAI,cAAc;IAC1B,YAAY,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9C,KAAK;IACL,IAAI,SAAS,EAAE,GAAG;IAClB,QAAQ,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,eAAe,CAAC;IAC7G,QAAQ,IAAI,GAAG;IACf,YAAY,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1F,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,QAAQ,MAAM,UAAU,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC;IACzC,QAAQ,MAAM,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC/C,QAAQ,IAAI,IAAI;IAChB,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,QAAQ,OAAO,GAAG,IAAI,CAAC;IACvB,QAAQ,mBAAmB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,QAAQ,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI;IAC3B,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,IAAI,GAAG,IAAI,QAAQ,EAAE;IACrC,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,oBAAoB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,oBAAoB,OAAO,EAAE,CAAC;IAC9B,oBAAoB,OAAO,OAAO,GAAG,KAAK,CAAC;IAC3C,iBAAiB;IACjB,gBAAgB,IAAI,GAAG,IAAI,UAAU,EAAE;IACvC,oBAAoB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,GAAG,UAAU,IAAI,QAAQ,CAAC,CAAC;IACpE,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,OAAO,CAAC;IAC3B,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;IACxB,IAAI,OAAO;IACX,QAAQ,KAAK,GAAG;IAChB,YAAY,IAAI,OAAO;IACvB,gBAAgB,OAAO;IACvB,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;IACrC,gBAAgB,MAAM,GAAG,MAAM,EAAE,CAAC;IAClC,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,EAAE,EAAE,CAAC;IACrB,aAAa;IACb,SAAS;IACT,QAAQ,UAAU,GAAG;IACrB,YAAY,OAAO,GAAG,KAAK,CAAC;IAC5B,SAAS;IACT,QAAQ,GAAG,GAAG;IACd,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,OAAO,EAAE,CAAC;IAC1B,gBAAgB,OAAO,GAAG,KAAK,CAAC;IAChC,aAAa;IACb,SAAS;IACT,KAAK,CAAC;IACN,CAAC;AAkKD;IACA,SAAS,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE;IACvC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClC,IAAI,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;IAC7C,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;IAChC,YAAY,OAAO;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;IACjC,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE;IAC/B,YAAY,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1C,YAAY,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnC,SAAS;IACT,QAAQ,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/D,QAAQ,IAAI,WAAW,GAAG,KAAK,CAAC;IAChC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;IACxB,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;IAC7B,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK;IAClD,oBAAoB,IAAI,CAAC,KAAK,KAAK,IAAI,KAAK,EAAE;IAC9C,wBAAwB,YAAY,EAAE,CAAC;IACvC,wBAAwB,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM;IAC1D,4BAA4B,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;IAC1D,gCAAgC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD,6BAA6B;IAC7B,yBAAyB,CAAC,CAAC;IAC3B,wBAAwB,YAAY,EAAE,CAAC;IACvC,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,iBAAiB;IACjB,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,aAAa;IACb,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;IACtB,YAAY,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACpC,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,YAAY,WAAW,GAAG,IAAI,CAAC;IAC/B,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,QAAQ,IAAI,IAAI,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACvC,QAAQ,IAAI,WAAW,EAAE;IACzB,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,KAAK;IACL,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;IAC7B,QAAQ,MAAM,iBAAiB,GAAG,qBAAqB,EAAE,CAAC;IAC1D,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI;IAC9B,YAAY,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACrD,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpD,YAAY,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,SAAS,EAAE,KAAK,IAAI;IACpB,YAAY,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACrD,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrD,YAAY,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChC,gBAAgB,MAAM,KAAK,CAAC;IAC5B,aAAa;IACb,SAAS,CAAC,CAAC;IACX;IACA,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;IAC3C,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE;IACxC,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAChC,KAAK;IACL,CAAC;IACD,SAAS,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;IACrD,IAAI,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;IAClC,IAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC9B,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE;IACpC,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACzC,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE;IACrC,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACzC,KAAK;IACL,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;AACD;IACA,MAAM,OAAO,IAAI,OAAO,MAAM,KAAK,WAAW;IAC9C,MAAM,MAAM;IACZ,MAAM,OAAO,UAAU,KAAK,WAAW;IACvC,UAAU,UAAU;IACpB,UAAU,MAAM,CAAC,CAAC;AAwGlB;IACA,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IAC5C,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;IACtB,IAAI,MAAM,WAAW,GAAG,EAAE,CAAC;IAC3B,IAAI,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,IAAI,CAAC,EAAE;IACf,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/B,oBAAoB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,aAAa;IACb,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;IACzC,oBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,oBAAoB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,iBAAiB;IACjB,aAAa;IACb,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT,aAAa;IACb,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;IACnC,QAAQ,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC;IAC5B,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACpC,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,iBAAiB,CAAC,YAAY,EAAE;IACzC,IAAI,OAAO,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;IACzF,CAAC;AAmND;IACA,SAAS,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzC,IAAI,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;IAC7B,QAAQ,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IAC7C,QAAQ,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL,CAAC;IACD,SAAS,gBAAgB,CAAC,KAAK,EAAE;IACjC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC;IAID,SAAS,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;IACnE,IAAI,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IACpD,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,aAAa,EAAE;IACxB;IACA,QAAQ,mBAAmB,CAAC,MAAM;IAClC,YAAY,MAAM,cAAc,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACtF;IACA;IACA;IACA,YAAY,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE;IACzC,gBAAgB,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IAChE,aAAa;IACb,iBAAiB;IACjB;IACA;IACA,gBAAgB,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,aAAa;IACb,YAAY,SAAS,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvC,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IACD,SAAS,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE;IACjD,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC9B,QAAQ,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChD;IACA;IACA,QAAQ,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;IACpB,KAAK;IACL,CAAC;IACD,SAAS,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE;IAClC,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;IACtC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,eAAe,EAAE,CAAC;IAC1B,QAAQ,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK;IACL,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,SAASC,MAAI,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAC5G,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;IAC/C,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG;IAC9B,QAAQ,QAAQ,EAAE,IAAI;IACtB,QAAQ,GAAG,EAAE,EAAE;IACf;IACA,QAAQ,KAAK;IACb,QAAQ,MAAM,EAAE,IAAI;IACpB,QAAQ,SAAS;IACjB,QAAQ,KAAK,EAAE,YAAY,EAAE;IAC7B;IACA,QAAQ,QAAQ,EAAE,EAAE;IACpB,QAAQ,UAAU,EAAE,EAAE;IACtB,QAAQ,aAAa,EAAE,EAAE;IACzB,QAAQ,aAAa,EAAE,EAAE;IACzB,QAAQ,YAAY,EAAE,EAAE;IACxB,QAAQ,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAClG;IACA,QAAQ,SAAS,EAAE,YAAY,EAAE;IACjC,QAAQ,KAAK;IACb,QAAQ,UAAU,EAAE,KAAK;IACzB,QAAQ,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC,EAAE,CAAC,IAAI;IACxD,KAAK,CAAC;IACN,IAAI,aAAa,IAAI,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,CAAC,GAAG,GAAG,QAAQ;IACrB,UAAU,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,KAAK;IACxE,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACtD,YAAY,IAAI,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE;IACnE,gBAAgB,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,gBAAgB,IAAI,KAAK;IACzB,oBAAoB,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,YAAY,OAAO,GAAG,CAAC;IACvB,SAAS,CAAC;IACV,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B;IACA,IAAI,EAAE,CAAC,QAAQ,GAAG,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpE,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE;IAE7B,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD;IACA,YAAY,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,YAAY,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb;IACA,YAAY,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,OAAO,CAAC,KAAK;IACzB,YAAY,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACjD,QAAQ,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1F,QAAQ,KAAK,EAAE,CAAC;IAChB,KAAK;IACL,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAiDD;IACA;IACA;IACA,MAAM,eAAe,CAAC;IACtB,IAAI,QAAQ,GAAG;IACf,QAAQ,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACnC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,KAAK;IACL,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE;IACxB,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;IACpC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,MAAM,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtF,QAAQ,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,OAAO,MAAM;IACrB,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtD,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC;IAC5B,gBAAgB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS,CAAC;IACV,KAAK;IACL,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;IAC9C,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;IACtC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;IACvC,SAAS;IACT,KAAK;IACL,CAAC;AACD;IACA,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;IACpC,IAAI,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChH,CAAC;IACD,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;IAClC,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAKD,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAC1C,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAKD,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAgBD,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE;IAC9F,IAAI,MAAM,SAAS,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IACvG,IAAI,IAAI,mBAAmB;IAC3B,QAAQ,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzC,IAAI,IAAI,oBAAoB;IAC5B,QAAQ,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1C,IAAI,YAAY,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACnF,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,OAAO,MAAM;IACjB,QAAQ,YAAY,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1F,QAAQ,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC;IACN,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,IAAI,IAAI;IACrB,QAAQ,YAAY,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE;IACA,QAAQ,YAAY,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC3B,IAAI,YAAY,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAKD,SAAS,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;IAClC,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;IAC/B,QAAQ,OAAO;IACf,IAAI,YAAY,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,SAAS,sBAAsB,CAAC,GAAG,EAAE;IACrC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,EAAE,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,CAAC,EAAE;IACzF,QAAQ,IAAI,GAAG,GAAG,gDAAgD,CAAC;IACnE,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,IAAI,GAAG,EAAE;IAC3E,YAAY,GAAG,IAAI,+DAA+D,CAAC;IACnF,SAAS;IACT,QAAQ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,KAAK;IACL,CAAC;IACD,SAAS,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;IAC1C,IAAI,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAC9C,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;IACtC,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,SAAS;IACT,KAAK;IACL,CAAC;IAYD,SAAS,8BAA8B,CAAC,SAAS,EAAE,KAAK,EAAE;IAC1D,IAAI,MAAM,aAAa,GAAG,qEAAqE,CAAC;IAChG,IAAI,IAAI;IACR,QAAQ,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9C,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IACnF,YAAY,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,OAAO,QAAQ,CAAC;IACxB,KAAK;IACL,IAAI,OAAO,GAAG,EAAE;IAChB,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAChC,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,EAAE;IAC3F,YAAY,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,SAAS;IACT,aAAa;IACb,YAAY,MAAM,GAAG,CAAC;IACtB,SAAS;IACT,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA,MAAM,kBAAkB,SAAS,eAAe,CAAC;IACjD,IAAI,WAAW,CAAC,OAAO,EAAE;IACzB,QAAQ,IAAI,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;IAChE,YAAY,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC7D,SAAS;IACT,QAAQ,KAAK,EAAE,CAAC;IAChB,KAAK;IACL,IAAI,QAAQ,GAAG;IACf,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM;IAC9B,YAAY,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC5D,SAAS,CAAC;IACV,KAAK;IACL,IAAI,cAAc,GAAG,GAAG;IACxB,IAAI,aAAa,GAAG,GAAG;IACvB;;ICtsEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAASC,MAAI,CAAC,IAAI,EAAE;IAC3B,IAAI,IAAI,CAAC,IAAI,EAAE;IACf,QAAQ,MAAM,KAAK,CAAC,4BAA4B,CAAC;IACjD,KAAK;AACL;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IACjD,QAAQ,MAAM,KAAK,CAAC,8DAA8D,CAAC;IACnF,KAAK;AACL;IACA;IACA,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;IACxB,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAC;IACnE,KAAK;AACL;IACA;IACA,IAAI,IAAI,OAAO,IAAI,CAAC,cAAc,IAAI,UAAU,EAAE;IAClD,QAAQ,MAAM,KAAK,CAAC,6CAA6C,CAAC;IAClE,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;IACzB;IACA,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;IAC7C,YAAY,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,EAAC;IAC/C,SAAS;IACT,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACzD,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE;IAChF,gBAAgB,MAAM,KAAK,CAAC,+BAA+B,GAAG,CAAC,GAAG,GAAG,CAAC;IACtE,aAAa;IACb,SAAS;IACT,KAAK;AACL;IACA;IACA,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;IAC/B,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAgB;IAC3D,QAAQ,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,UAAS;IAC3E,KAAK;AACL;IACA;IACA;IACA,IAAI,MAAM,GAAG,GAAG;IAChB,QAAQ,SAAS,EAAE,IAAI,CAAC,cAAc;IACtC,QAAQ,QAAQ,EAAE,IAAI,CAAC,QAAQ;IAC/B,QAAQ,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,GAAG,SAAS;IAC7F,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE;IAC/E,QAAQ,gBAAgB,EAAE,IAAI;IAC9B,MAAK;AACL;IACA,IAAI,OAAO,GAAG;IACd;;ICvFA,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;IAChC,IAAI,OAAO;IACX,QAAQ,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS;IACnD,KAAK,CAAC;IACN,CAAC;IACD;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE;IACvC,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE;IAC5B,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;IAC9C,YAAY,KAAK,GAAG,SAAS,CAAC;IAC9B,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAC3D,gBAAgB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;IACtD,oBAAoB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7D,iBAAiB;IACjB,gBAAgB,IAAI,SAAS,EAAE;IAC/B,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACzE,wBAAwB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,qBAAqB;IACrB,oBAAoB,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,SAAS,MAAM,CAAC,EAAE,EAAE;IACxB,QAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE;IAC/C,QAAQ,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7C,QAAQ,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;IACpC,YAAY,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACtC,SAAS;IACT,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,QAAQ,OAAO,MAAM;IACrB,YAAY,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,YAAY,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;IACxC,gBAAgB,IAAI,EAAE,CAAC;IACvB,gBAAgB,IAAI,GAAG,IAAI,CAAC;IAC5B,aAAa;IACb,SAAS,CAAC;IACV,KAAK;IACL,IAAI,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;IACD,SAAS,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE;IAC5C,IAAI,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,MAAM,YAAY,GAAG,MAAM;IAC/B,UAAU,CAAC,MAAM,CAAC;IAClB,UAAU,MAAM,CAAC;IACjB,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,IAAI,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,KAAK;IAC5C,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC;IAC1B,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC;IAC3B,QAAQ,MAAM,IAAI,GAAG,MAAM;IAC3B,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,OAAO;IACvB,aAAa;IACb,YAAY,OAAO,EAAE,CAAC;IACtB,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IAChE,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,aAAa;IACb,iBAAiB;IACjB,gBAAgB,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9D,aAAa;IACb,SAAS,CAAC;IACV,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK;IACzF,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9B,YAAY,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,YAAY,IAAI,MAAM,EAAE;IACxB,gBAAgB,IAAI,EAAE,CAAC;IACvB,aAAa;IACb,SAAS,EAAE,MAAM;IACjB,YAAY,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC,CAAC;IACZ,QAAQ,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,OAAO,SAAS,IAAI,GAAG;IAC/B,YAAY,OAAO,CAAC,aAAa,CAAC,CAAC;IACnC,YAAY,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC;IACV,KAAK,CAAC,CAAC;IACP;;ICpGO,SAASC,OAAK,CAAC,GAAG,EAAE,KAAK,EAAE;IAClC,CAAC,IAAI,GAAG,YAAY,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/D,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;AACvB;IACA,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE;IAC3B,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACb,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;IACjB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,GAAG,OAAO,IAAI,OAAO,CAAC;IACtB,GAAG,MAAM,IAAI,CAAC,KAAK,GAAG,EAAE;IACxB,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3B,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC7B,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACvE,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,gBAAgB,GAAG,WAAW,CAAC;IAC7D,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxE,GAAG,MAAM;IACT,GAAG,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC;IACxB,GAAG;IACH,EAAE;AACF;IACA,CAAC,OAAO;IACR,EAAE,IAAI,EAAE,IAAI;IACZ,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,IAAI,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC;IACzE,EAAE,CAAC;IACH;;;;;;;;;;;sDCqPQ,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;sCAFF,GAAS,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uFAEZ,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;0DAFF,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IANP,CAAA,MAAA,6BAAA,GAAA,CAAA,EAAA,MAAA,sBAAA,GAAe,iBAEpB,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;sCAHF,GAAS,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEACP,GAAe,CAAA,CAAA,CAAA,EAAA;4DAEpB,GAAK,CAAA,CAAA,CAAA,CAAA;;;;0DAHF,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAFf,GAAe,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IArPJ,SAAA,IAAI,CAAC,SAAS,EAAE,QAAQ,KAAK,UAAU,EAAA;;;KAGnD,OAAO,CAAC,IAAI,CAAC,0LAA0L,CAAA,CAAA;;IAChM,CAAA,OAAAC,MAAK,CACR,EAAA,SAAS,EACT,QAAQ,EACR,UAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;aAeC,WAAW,GAAA;WACV,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA,CAAA;;SAClD,QAAQ,GAAI,YAAY,GAAA,CAAI,CAAC;OAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAA;OAAI,GAAE,CAAA;;;IAGjF,CAAA,MAAA,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAA,CAAA;;IACnC,CAAA,IAAA,WAAW,GAAG,EAAC,CAAA;;IACf,CAAA,IAAA,UAAU,IAAI,CAAC,EAAA;IACf,EAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAA,CAAA;IAC5C,EAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAA,CAAA;;;IAGpC,CAAA,OAAA,EAAA,QAAQ,EAAE,WAAW,EAAA,CAAA;;;UAMpB,GAAG,GAAG,QAAQ,CACvB,IAAI;IAEK,SAAA,KAAK,CAAC,GAAG,EAAA;IACd,CAAA,GAAG,CAAC,WAAW,EAAA,CAAA,CAAA;;WAET,MAAM,GAAA,MAAA;IACR,EAAA,GAAG,CAAC,WAAW,EAAA,CAAA,CAAA;;;IAEnB,CAAA,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAA,CAAA;;qBAEnC,IAAI,GAAA;IAChB,EAAA,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAA,CAAA;;;;UAQrDC,UAAQ,GAAG,OAAO,CAC3B,GAAG,EACF,IAAI,IAAK,IAAI,CAAC,QAAA,CAAA,CAAA;UAMN,WAAW,GAAG,OAAO,CAC9B,GAAG,EACF,IAAI,IAAK,IAAI,CAAC,WAAA,CAAA,CAAA;UAQN,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAA,CAAA;;IAQlB,eAAA,IAAI,CAAC,QAAQ,EAAA;UAC1B,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,IAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAA,KAAM,CAAC,EAAA;IACxF,EAAA,MAAA,KAAK,CAAC,4BAA4B,CAAA,CAAA;;;;WAItC,IAAI,EAAA,CAAA;;;IAGV,CAAA,OAAO,CAAC,YAAY;;IAAK,GAAA,GAAA,OAAO,CAAC,KAAK;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;;MAAG,SAAS;;;IAC5I,CAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAA,CAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,QAAA,CAAA;;;mBAQ9C,GAAG,GAAA;;WAEf,IAAI,EAAA,CAAA;;KAEV,MAAM,CAAC,OAAO,CAAC,IAAI,EAAA,CAAA;;;IASD,eAAA,OAAO,CAAC,QAAQ,EAAA;UAC7B,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,IAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAA,KAAM,CAAC,EAAA;IACxF,EAAA,MAAA,KAAK,CAAC,4BAA4B,CAAA,CAAA;;;;WAItC,IAAI,EAAA,CAAA;;IAEJ,CAAA,MAAA,IAAI,GAAI,CAAA,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAK,IAAA,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,QAAA,CAAA;;;YAE5C,QAAQ,GAAA,EAAA,GACP,OAAO,CAAC,KAAA,EAAA,CAAA;IAER,EAAA,OAAA,QAAQ,CAAC,6BAA6B,CAAA,CAAA;IACtC,EAAA,OAAA,QAAQ,CAAC,6BAA6B,CAAA,CAAA;MAC7C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAA,CAAA;aAElD,CAAC,EAAA;;MAEJ,OAAO,CAAC,IAAI,CAAC,0KAA0K,CAAA,CAAA;;;;IAI3L,CAAA,MAAM,CAAC,aAAa,CAAK,IAAA,KAAK,CAAC,YAAY,CAAA,CAAA,CAAA;;;aAsB/B,IAAI,CAAC,IAAI,EAAE,IAAI,EAAA;KAC3B,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA,CAAA;;;UAGf,IAAI,IAAA,CAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAA,IAAM,GAAG,EAAA;IACrD,EAAA,MAAA,KAAK,CAAC,8CAA8C,CAAA,CAAA;;;KAG9D,UAAU,CAAC,IAAI,EAAE,IAAI,CAAA,CAAA;;;IAGjB,EAAA,MAAM,CAAC,OAAO,EAAA;OACV,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA,CAAA;OAC1B,UAAU,CAAC,IAAI,EAAE,OAAO,CAAA,CAAA;;;;;IAUpB,SAAA,aAAa,CAAC,KAAK,EAAA;;SAE3B,KAAK,EAAA;MACL,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,2BAA2B,CAAA,CAAA;;;IAIpF,EAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAA,CAAA;;;;;aAKnB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAA;SACtB,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA,CAAA;;;IAG5C,CAAA,IAAA,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,EAAA;;MAE7B,IAAI,GAAG,GAAG,GAAG,IAAA,CAAA;IAEP,EAAA,MAAA,IAAA,CAAA,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAA;YACnD,KAAK,CAAC,sCAAsC,GAAG,IAAI,CAAA,CAAA;;;IAG7D,CAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAA,CAAA;;IAC9B,CAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAG,KAAK,IAAA;;IAEjC,EAAA,KAAK,CAAC,cAAc,EAAA,CAAA;;IACf,EAAA,IAAA,CAAA,IAAI,CAAC,QAAQ,EAAA;IACd,GAAA,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAA,CAAA,CAAA;;;;;;IAMpE,SAAA,QAAQ,CAAC,GAAG,EAAA;SACb,GAAG,IAAA,OAAW,GAAG,IAAI,QAAQ,EAAA;IAEzB,EAAA,OAAA,EAAA,IAAI,EAAE,GAAA,EAAA,CAAA;;aAIH,GAAG,IAAA,EAAA,CAAA;;;;;;;;;;IAUT,SAAA,yBAAyB,CAAC,IAAI,EAAA;;IAEnC,CAAA,OAAO,CAAC,YAAY;;IAAK,GAAA,GAAA,OAAO,CAAC,KAAK;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;;MAAG,SAAS;;;;IAE5I,CAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAA,CAAA;;;;;;WAsChB,MAAM,GAAA,EAAA,EAAA,GAAA,OAAA,CAAA;IAKN,CAAA,IAAA,EAAA,MAAM,GAAG,EAAC,EAAA,GAAA,OAAA,CAAA;IAMV,CAAA,IAAA,EAAA,kBAAkB,GAAG,KAAA,EAAA,GAAA,OAAA,CAAA;;;;;WAK1B,SAAS,CAAA;;;;;;;MAOX,WAAW,CAAC,IAAI,EAAE,SAAS,EAAA;IAClB,GAAA,IAAA,CAAA,SAAS,IAAY,OAAA,SAAS,IAAI,UAAU,KAAY,OAAA,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC,gBAAgB,KAAK,IAAI,CAAA,EAAA;IAC/G,IAAA,MAAA,KAAK,CAAC,0BAA0B,CAAA,CAAA;;;;IAIrC,GAAA,IAAA,CAAA,IAAI,IACG,OAAA,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAK,IAAA,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA,IAAK,GAAG,CAAA,IAAA,OACvF,IAAI,IAAI,QAAQ,IAAM,EAAA,IAAI,YAAY,MAAM,CAAA,EAAA;IAE9C,IAAA,MAAA,KAAK,CAAC,oEAAoE,CAAA,CAAA;;;IAG7E,GAAA,MAAA,EAAA,OAAO,EAAE,IAAI,EAAI,GAAAF,OAAK,CAAC,IAAI,CAAA,CAAA;OAElC,IAAI,CAAC,IAAI,GAAG,IAAA,CAAA;;;IAGD,GAAA,IAAA,OAAA,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC,gBAAgB,KAAK,IAAI,EAAA;IACnE,IAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAA,CAAA;IAC3B,IAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,IAAA,EAAA,CAAA;IACtC,IAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAA,CAAA;IAC1B,IAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAA,EAAA,CAAA;;;IAI5B,IAAA,IAAI,CAAC,SAAS,GAAA,MAAS,OAAO,CAAC,OAAO,CAAC,SAAS,CAAA,CAAA;;IAChD,IAAA,IAAI,CAAC,UAAU,GAAA,EAAA,CAAA;IACf,IAAA,IAAI,CAAC,KAAK,GAAA,EAAA,CAAA;;;OAGd,IAAI,CAAC,QAAQ,GAAG,OAAA,CAAA;OAChB,IAAI,CAAC,KAAK,GAAG,IAAA,CAAA;;;;;;;;;;;IAWjB,EAAA,KAAK,CAAC,IAAI,EAAA;;;WAGF,MAAM,EAAA;IACK,IAAA,IAAA,OAAA,MAAM,IAAI,QAAQ,EAAA;aACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA,EAAA;UACtB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAA,IAAK,GAAE,CAAA;;iBAGhC,IAAA,CAAA;;IAGN,KAAA,MAAA,IAAA,MAAM,YAAY,MAAM,EAAA;IACvB,KAAA,MAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA,CAAA;;aAC3B,KAAK,IAAI,KAAK,CAAC,CAAC,CAAA,EAAA;UAChB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA,CAAE,MAAM,CAAA,IAAK,GAAE,CAAA;;iBAGlC,IAAA,CAAA;;;;;;IAMb,GAAA,MAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAA,CAAA;;IACnC,GAAA,IAAA,OAAO,KAAK,IAAI,EAAA;eACT,IAAA,CAAA;;;;WAIP,IAAI,CAAC,KAAK,KAAK,KAAK,EAAA;eACb,OAAA,CAAA;;;aAGL,GAAG,GAAA,EAAA,CAAA;IACL,GAAA,IAAA,CAAC,GAAG,CAAA,CAAA;;IACD,GAAA,OAAA,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAA;;;IAGpB,KAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAK,CAAA,GAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAK,IAAA,EAAE,KAAK,IAAA,CAAA;gBAE9D,CAAC,EAAA;IACJ,KAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAA,CAAA;;;QAEzB,CAAC,EAAA,CAAA;;;cAEE,GAAA,CAAA;;;;;;;;;;;;;;;;;;;IAoBL,EAAA,MAAA,eAAe,CAAC,MAAM,EAAA;gBACf,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAA,EAAA;IAC7B,IAAA,IAAA,CAAA,MAAA,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAA,EAAA;gBAC1B,KAAA,CAAA;;;;cAIR,IAAA,CAAA;;;;;WAKT,UAAU,GAAA,EAAA,CAAA;;IACZ,CAAA,IAAA,MAAM,YAAY,GAAG,EAAA;;IAErB,EAAA,MAAM,CAAC,OAAO,CAAE,CAAA,KAAK,EAAE,IAAI,KAAA;IACvB,GAAA,UAAU,CAAC,IAAI,CAAA,IAAK,SAAS,CAAC,IAAI,EAAE,KAAK,CAAA,CAAA,CAAA;;;;IAK7C,EAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA,OAAO,CAAE,IAAI,IAAA;OAC7B,UAAU,CAAC,IAAI,CAAK,IAAA,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAA,CAAA,CAAA,CAAA;;;;;IAKnD,CAAA,IAAA,SAAS,GAAG,IAAA,CAAA;;IACZ,CAAA,IAAA,eAAe,GAAG,IAAA,CAAA;SAClB,KAAK,GAAA,EAAA,CAAA;;;IAGH,CAAA,MAAA,QAAQ,GAAG,qBAAqB,EAAA,CAAA;;;oBAGvB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAA;;YAElC,IAAI,EAAA,CAAA;;MACV,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA,CAAA;;;;IAIrB,CAAA,IAAA,mBAAmB,GAAG,IAAA,CAAA;;IAItB,CAAA,IAAA,eAAe,GAAG,IAAA,CAAA;;SAClB,kBAAkB,EAAA;IAClB,EAAA,eAAe,GAAI,KAAK,IAAA;;;;IAIhB,GAAA,IAAA,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,2BAA2B,IAAI,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAA,EAAA;QAClG,mBAAmB,GAAG,KAAK,CAAC,KAAA,CAAA;;IAG5B,IAAA,mBAAmB,GAAG,IAAA,CAAA;;;;;IAI9B,EAAA,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,CAAA,CAAA;;MAEnD,WAAW,CAAA,MAAA;IACP,GAAA,aAAa,CAAC,mBAAmB,CAAA,CAAA;;;;;IAKrC,CAAA,IAAA,OAAO,GAAG,IAAA,CAAA;;;IAGV,CAAA,IAAA,YAAY,GAAG,IAAA,CAAA;;;;;IAKb,CAAA,MAAA,cAAc,GAAG,GAAG,CAAC,SAAS,OAAQ,MAAM,IAAA;IAC9C,EAAA,OAAO,GAAG,MAAA,CAAA;;;IAGN,EAAA,IAAA,CAAC,GAAG,CAAA,CAAA;;aACD,CAAC,GAAG,UAAU,CAAC,MAAM,EAAA;aAClB,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA,CAAA;;YAC5C,KAAK,EAAA;QACN,CAAC,EAAA,CAAA;;;;aAIC,MAAM,GAAA;IACR,IAAA,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,IAAA,QAAQ,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ;IAChC,IAAA,MAAM,EAAG,KAAK,IAAW,OAAA,KAAK,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;UAAI,KAAK;UAAG,IAAA;;;;IAI3E,GAAA,IAAA,CAAA,MAAA,UAAU,CAAC,CAAC,CAAE,CAAA,eAAe,CAAC,MAAM,CAAA,EAAA;;IAE5C,IAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAA,CAAA,CAAA;;IACZ,IAAA,YAAY,GAAG,IAAA,CAAA;;;QAEf,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,CAAA,CAAA;;;;;;;IAM/C,GAAA,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,CAAA,CAAA,CAAA;;;IAGnD,GAAA,MAAA,GAAG,GAAG,UAAU,CAAC,CAAC,EAAE,SAAA,CAAA;;;IAEtB,GAAA,IAAA,YAAY,IAAI,GAAG,EAAA;IACf,IAAA,IAAA,GAAG,CAAC,OAAO,EAAA;yBACX,SAAS,GAAG,GAAG,CAAC,OAAA,CAAA,CAAA;IAChB,KAAA,YAAY,GAAG,GAAA,CAAA;yBACf,eAAe,GAAG,GAAG,CAAC,aAAA,CAAA,CAAA;yBACtB,KAAK,GAAA,EAAA,CAAA,CAAA;;;;IAIL,KAAA,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,EAAA;UACzC,SAAS;UACpB,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,MAAA,MAAM,EAAE,eAAA;;;IAIZ,KAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAA,CAAA,CAAA;IACZ,KAAA,YAAY,GAAG,IAAA,CAAA;;;;IAIb,IAAA,MAAA,MAAM,SAAS,GAAG,EAAA,CAAA;;;IAGpB,IAAA,IAAA,MAAM,IAAI,OAAO,EAAA;;;;;;IAMrB,IAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAI,MAAM,IAAI,MAAM,CAAC,OAAO,IAAK,MAAA,CAAA,CAAA;;IAC1C,IAAA,YAAY,GAAG,GAAA,CAAA;;;;;WAKf,KAAK,IAAA,OAAW,KAAK,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAA,CAAE,MAAM,EAAA;IAC9D,IAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAA,CAAA,CAAA;;IAGlB,IAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAA,CAAA,CAAA;;;;IAItB,GAAA,YAAA,CAAA,CAAA,EAAA,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,KAAA,CAAA,CAAA;;;;IAItB,GAAA,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,EAAA;QACzC,SAAS;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,IAAA,MAAM,EAAE,eAAA;WACR,IAAI,CAAA,MAAA;QACJ,MAAM,CAAC,GAAG,CAAC,eAAe,CAAA,CAAA;;;;;;;IAMlC,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAA,CAAA,CAAA;;IACZ,EAAA,YAAY,GAAG,IAAA,CAAA;MACf,MAAM,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;;KAGxB,SAAS,CAAA,MAAA;MACL,cAAc,EAAA,CAAA;IACd,EAAA,eAAe,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAtI1E,OAAO,CAAC,iBAAiB,GAAG,kBAAkB,GAAG,QAAQ,GAAG,MAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCldpE,UAAqB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACrB,UAAmC,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OAEnC,UAA2B,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OAC3B,UAEG,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;OADC,UAAsB,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICN1B;IACA,MAAM,KAAK,GAAG,GAAE;AAChB;IACA;IACA,IAAIE,WAAQ;AACZ;IACA;IACA,SAAS,WAAW,CAAC,EAAE,EAAE;IACzB,IAAI,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAACA,UAAQ,EAAC;IACrD,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,eAAe,EAAC;IACpD,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,eAAe,EAAC;IAC7D,CAAC;AACD;IACA,SAAS,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE;IACjD,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;IAClD,QAAQ,IAAI,CAAC,GAAG,EAAE;IAClB,YAAY,MAAM;IAClB,SAAS;IACT;IACA,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAC;AACrC;IACA;IACA,QAAQ,IAAI,SAAS,EAAE;IACvB,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAC;IACtC,SAAS;IACT,KAAK,EAAC;IACN,CAAC;AACD;IACA;IACA,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK;IACzB;IACA,IAAIA,UAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,WAAW,GAAG,EAAE,EAAC;AAClF;IACA;IACA,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAC;IAC1B,CAAC;;;;;;;;;;;;;;;;;;;;;OCLK,UAAqE,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAFrE,UAA8D,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAD3D,EAAA,kBAAA,GAAS,QAAK,UAAU,EAAA,OAAAC,iBAAA,CAAA;IAEnB,EAAA,kBAAA,GAAS,QAAK,UAAU,EAAA,OAAAC,mBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OATtC,UAqBQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;OApBN,UAAmF,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;;OACnF,UAAmB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAiBK,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;OAhBN,UAAqD,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACrD,UAA8D,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAC9D,UAA2D,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;;;OAWxD,UAAmE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACnE,UAAqD,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACrD,UAAoD,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;4DAAlC,GAAiB,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAjCjC,iBAAiB,GAAA,YAAA;IACb,EAAA,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CACtE,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAE,MAAM,EAAA,CAAA;;MAIf,IAAI,CAAA,MAAQ,IAAI,CAAC,GAAG,CAAA,CAAA,CAAA;;MACvB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;;;;;;;;;IAQmC,CAAA,MAAA,aAAA,GAAA,MAAA,IAAI,CAAC,GAAG,CAAA,CAAA;IAGxD,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,OAAO,CAAA,CAAA;IACZ,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,YAAY,CAAA,CAAA;IACjB,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,UAAU,CAAA,CAAA;IAEV,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,UAAU,CAAA,CAAA;IAEf,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,mBAAmB,CAAA,CAAA;IAO1B,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,kBAAkB,CAAA,CAAA;IACvB,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,OAAO,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICwCd,CAAA,IAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;8BAuBvB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA;;;;;8BAChB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA;;;;;8BACrB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;;8BACpB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;;iBAzBd,eAChB,CAAA,CAAA;;;;;;;;;;;;;;;0BAgB8B,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;kBAK/B,SAAO,CAAA,CAAA;;;;kBACP,aAAW,CAAA,CAAA;;;;kBACX,UAAQ,CAAA,CAAA;;;;kBACR,SAAO,CAAA,CAAA;;;8DA3Bc,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHlC,UAgCM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OA7BJ,UAA0D,CAAA,IAAA,EAAA,GAAA,CAAA,CAAA;;OAC1D,UAA0C,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAC1C,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAlBH,UAiBM,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;OAhBJ,UAIM,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA;OADL,UAAiW,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;OAGnW,UAIM,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA;OADL,UAAiW,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;OAGnW,UAIM,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA;OADL,UAAiW,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;OAGnW,UAAuC,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;OAG3C,UAMS,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;OALP,UAAwB,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;OACxB,UAAmC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;OACnC,UAAqC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;OACrC,UAAmC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;OACnC,UAAkC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;;sFA3BV,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA;;;;IACT,GAAA,IAAA,KAAA,YAAA,CAAA,IAAA,QAAA,MAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;yDAkBJ,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;qEAKvB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;qEAChB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;qEACrB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;qEACpB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IA/B7B,CAAA,IAAA,QAAA,YAAA,GAAI,QAAK,SAAS,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;OADzB,UAoCK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;IAnCE,GAAA,aAAA,GAAI,QAAK,SAAS,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAvEZ,IAAI,EAAA,GAAA,OAAA,CAAA;WACJ,OAAO,EAAA,GAAA,OAAA,CAAA;IACd,CAAA,IAAA,IAAI,GAAG,EAAE,CAAA;SACT,MAAM,CAAA;;KAGV,OAAO,CAAA,YAAA;;UAED,OAAO,EAAA;IACH,GAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC5G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,IAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,IAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACF,IAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,IAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;IAchB,CAAA,IAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAA;IAC9B,EAAA,IAAI,GAAG,kBAAkB,CAAA;IAChB,EAAA,MAAA,IAAA,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,EAAA;IACvC,EAAA,IAAI,GAAG,iBAAiB,CAAA;;IAExB,EAAA,IAAI,GAAG,kBAAkB,CAAA;;;;IAMvB,CAAA,IAAA,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;;IAExB,CAAA,MAAA,IAAI,IAAI,GAAG,EAAE,GAAG,KACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,CAAA;;;IAG7C,CAAA,MAAA,OAAO,GAAI,IAAI,IAAA;;UAEf,IAAI,EAAA;OACN,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAA,CAAA,EAAK,IAAI,CAAA,CAAE,EAAE,EAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OACtD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAA,CAAA,EAAK,IAAI,CAAA,CAAE,EAAE,EAAE,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAEpD,GAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAA;IAC7B,GAAA,IAAI,CAAC,YAAY,CAAA;IACjB,GAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAA;;;;;SAKzB,KAAK,GAAA,EAAA,CAAA;;IAEA,CAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAA,EAAA;MACtB,UAAU;;QACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA,CAAA,CAAA;IAEf,IAAA,WAAW,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAA,CAAA;;OACxC,KAAK,EAAA,IAAM,QAAQ,GAAG,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;IAeL,GAAA,KAAK,CAAC,CAAC,CAAA,GAAA,OAAA,CAAA;;;;;;;IAKP,GAAA,KAAK,CAAC,CAAC,CAAA,GAAA,OAAA,CAAA;;;;;;;IAKP,GAAA,KAAK,CAAC,CAAC,CAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCvFhC,UAmBK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAlBJ,UAAyB,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;OACzB,UAAiE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACjE,UAAgE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChE,UAAgE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChE,UAA+D,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAC/D,UAAoE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACpE,UAAoE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACpE,UAAqE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACrE,UAAkE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAClE,UAAgE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChE,UAG6B,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAC7B,UAG6B,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAvBlB,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;WACX,OAAO,GAAA,EAAA,EAAA,GAAA,OAAA,CAAA;;;;;;;;IAMW,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,OAAO,CAAA,CAAA;;;;IAChB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;IACf,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;IACf,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,KAAK,CAAA,CAAA;;;;IACd,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,UAAU,CAAA,CAAA;;;;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,UAAU,CAAA,CAAA;;;;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,WAAW,CAAA,CAAA;;;;IACpB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,QAAQ,CAAA,CAAA;;;;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;sBAE3C,OAAO,GAAA,CAAI,UAAU,EAAE,UAAU,CAAA,CAAA,CAAA;IACjC,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;sBAGf,OAAO,GAAA,CAAI,UAAU,EAAE,UAAU,CAAA,CAAA,CAAA;IACjC,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEChBJ,GAAM,CAAA,CAAA,CAAA,GAAA,WAAA,GAAA,gBAAA,CAAA,CAAA,CAAA;oDAAsC,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;OAA9D,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;uGAFQ,GAAM,CAAA,CAAA,CAAA,GAAA,WAAA,GAAA,gBAAA,CAAA,CAAA,EAAA;;;;;qDAAsC,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WALlD,KAAK,EAAA,GAAA,OAAA,CAAA;WACL,MAAM,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CCuB0C,GAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;uFAAS,GAAQ,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,CAAA;;;;;;;OAArF,UAEQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;OADP,UAAmB,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;uDADF,GAAa,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;IAAY,OAAA,IAAA,WAAA,cAAA,GAAQ,mBAAR,GAAQ,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAAS,GAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;;;+HAAS,GAAQ,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAZzE,CAAA,IAAA,EAAA,QAAQ,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACb,CAAA,IAAA,EAAA,QAAQ,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACb,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,UAAU,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACf,CAAA,IAAA,EAAA,QAAQ,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;cAEf,aAAa,GAAA;IACrB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCbiC,MAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHD,UAIK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WARO,MAAM,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOsD,UAEvE,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG+D,KAE/D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAfD,UAuCK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OArBJ,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAlBJ,UAAwC,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACxC,UAgBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAfJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAoD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA1B5C,MAAM,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BCGA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;uEADA,GAAI,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA;;;;;;;OAA1B,UAGK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAFJ,UAAyB,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;OACzB,UAA+B,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;qEADd,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;2GADA,GAAI,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAJd,IAAI,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICFhB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;IAC5B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;IACzC,IAAI,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;;ICX5D,MAAME,gBAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC7E,MAAMC,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE;IACA,MAAMC,QAAM,GAAG,GAAG,IAAI;IACtB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IACnD,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,QAAQ,KAAK;IACnE,IAAI,IAAIF,gBAAc,IAAI,IAAI,YAAY,IAAI,EAAE;IAChD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,SAAS;IACT,KAAK;IACL,SAAS,IAAIC,uBAAqB;IAClC,SAAS,IAAI,YAAY,WAAW,IAAIC,QAAM,CAAC,IAAI,CAAC,CAAC,EAAE;IACvD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClE,SAAS;IACT,KAAK;IACL;IACA,IAAI,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;IAC/C,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,GAAG,YAAY;IACpC,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC;IACN,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;;ICvCD,MAAM,KAAK,GAAG,kEAAkE,CAAC;IACjF;IACA,MAAMC,QAAM,GAAG,OAAO,UAAU,KAAK,WAAW,GAAG,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvC,IAAIA,QAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAiBM,MAAMC,QAAM,GAAG,CAAC,MAAM,KAAK;IAClC,IAAI,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACnH,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC3C,QAAQ,YAAY,EAAE,CAAC;IACvB,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC/C,YAAY,YAAY,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL,IAAI,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3F,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;IACjC,QAAQ,QAAQ,GAAGD,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IACvD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,EAAE,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC9D,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC7D,KAAK;IACL,IAAI,OAAO,WAAW,CAAC;IACvB,CAAC;;ICvCD,MAAMF,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,UAAU,KAAK;IACpD,IAAI,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;IAC3C,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC;IACtD,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;IACtB,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IAC5E,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,UAAU,EAAE;IACrB,QAAQ,OAAO,YAAY,CAAC;IAC5B,KAAK;IACL,IAAI,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC;IACnC,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,YAAY,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,SAAS,CAAC;IACV,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACjD,IAAI,IAAIA,uBAAqB,EAAE;IAC/B,QAAQ,MAAM,OAAO,GAAGG,QAAM,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,OAAO,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtC,KAAK;IACL,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACxC,IAAI,QAAQ,UAAU;IACtB,QAAQ,KAAK,MAAM;IACnB,YAAY,OAAO,IAAI,YAAY,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACzE,QAAQ,KAAK,aAAa,CAAC;IAC3B,QAAQ;IACR,YAAY,OAAO,IAAI,CAAC;IACxB,KAAK;IACL,CAAC;;IC7CD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK;IAC7C;IACA,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,IAAI,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;IACnC;IACA,QAAQ,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,IAAI;IACrD,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;IAC9C,YAAY,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE;IACpC,gBAAgB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,aAAa;IACb,SAAS,CAAC,CAAC;IACX,KAAK,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,UAAU,KAAK;IACtD,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACpD,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1E,QAAQ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,QAAQ,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE;IAC5C,YAAY,MAAM;IAClB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IACK,MAAMC,UAAQ,GAAG,CAAC;;IC9BzB;IACA;IACA;IACA;IACA;AACA;IACO,SAAS,OAAO,CAAC,GAAG,EAAE;IAC7B,EAAE,IAAI,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,KAAK,CAAC,GAAG,EAAE;IACpB,EAAE,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;IACrC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,EAAE;IACpB,OAAO,CAAC,SAAS,CAAC,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IACxD,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE;IACpE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC5C,EAAE,SAAS,EAAE,GAAG;IAChB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9B,GAAG;AACH;IACA,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrB,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,GAAG;IACrB,OAAO,CAAC,SAAS,CAAC,cAAc;IAChC,OAAO,CAAC,SAAS,CAAC,kBAAkB;IACpC,OAAO,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC3D,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC/C,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC;AAC9B;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,EAAE,CAAC;IACT,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;IACnC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM;IACZ,KAAK;IACL,GAAG;AACH;IACA;IACA;IACA,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAC9B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,CAAC;IACxC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAC/C;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,GAAG;AACH;IACA,EAAE,IAAI,SAAS,EAAE;IACjB,IAAI,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;IAC1D,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AACxD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,CAAC;IAC7C,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,CAAC;IAChD,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;;ICxKM,MAAM,cAAc,GAAG,CAAC,MAAM;IACrC,IAAI,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,SAAS,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC5C,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;IACzC,KAAK;IACL,CAAC,GAAG;;ICTG,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE;IACnC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;IACnC,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IACD;IACA,MAAM,kBAAkB,GAAG,UAAU,CAAC;IACtC,MAAM,oBAAoB,GAAG,YAAY,CAAC;IACnC,SAAS,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE;IACjD,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;IAC9B,QAAQ,GAAG,CAAC,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAACC,cAAU,CAAC,CAAC;IAC/D,QAAQ,GAAG,CAAC,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACnE,KAAK;IACL,SAAS;IACT,QAAQ,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACvD,QAAQ,GAAG,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IAC3D,KAAK;IACL,CAAC;IACD;IACA,MAAM,eAAe,GAAG,IAAI,CAAC;IAC7B;IACO,SAAS,UAAU,CAAC,GAAG,EAAE;IAChC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK;IACL;IACA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC;IACrE,CAAC;IACD,SAAS,UAAU,CAAC,GAAG,EAAE;IACzB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAChD,QAAQ,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,QAAQ,IAAI,CAAC,GAAG,IAAI,EAAE;IACtB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,KAAK,EAAE;IAC5B,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE;IAC5C,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa;IACb,YAAY,CAAC,EAAE,CAAC;IAChB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB;;IChDA,MAAM,cAAc,SAAS,KAAK,CAAC;IACnC,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC9C,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACvC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IACrC,KAAK;IACL,CAAC;IACM,MAAM,SAAS,SAAS,OAAO,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC1C,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,IAAI,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE;IACpE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,SAGS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACnC,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,KAAK;IACL;;ICnHA;IAEA,MAAM,QAAQ,GAAG,kEAAkE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC;IACrH,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAC1B;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAASC,QAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;IACrB,IAAI,GAAG;IACP,QAAQ,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IACnD,QAAQ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;IACvC,KAAK,QAAQ,GAAG,GAAG,CAAC,EAAE;IACtB,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC;IAeD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,KAAK,GAAG;IACxB,IAAI,MAAM,GAAG,GAAGA,QAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,KAAK,IAAI;IACpB,QAAQ,OAAO,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC;IACpC,IAAI,OAAO,GAAG,GAAG,GAAG,GAAGA,QAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD;IACA;IACA;IACA,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;IACtB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;;ICjDxB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;IACvB,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,CAAC,MAAM;IAC1B,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC3B,YAAY,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,SAAS;IACT,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,EAAE,EAAE;IAC3B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAClD,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,QAAQ,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf;;ICjCA;IACA,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI;IACJ,IAAI,KAAK,GAAG,OAAO,cAAc,KAAK,WAAW;IACjD,QAAQ,iBAAiB,IAAI,IAAI,cAAc,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,EAAE;IACZ;IACA;IACA,CAAC;IACM,MAAM,OAAO,GAAG,KAAK;;ICV5B;IAGO,SAAS,GAAG,CAAC,IAAI,EAAE;IAC1B,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC;IACA,IAAI,IAAI;IACR,QAAQ,IAAI,WAAW,KAAK,OAAO,cAAc,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE;IAC5E,YAAY,OAAO,IAAI,cAAc,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL,IAAI,OAAO,CAAC,EAAE,GAAG;IACjB,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAID,cAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9F,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,GAAG;IACrB,KAAK;IACL;;ICVA,SAAS,KAAK,GAAG,GAAG;IACpB,MAAM,OAAO,GAAG,CAAC,YAAY;IAC7B,IAAI,MAAM,GAAG,GAAG,IAAIE,GAAc,CAAC;IACnC,QAAQ,OAAO,EAAE,KAAK;IACtB,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC;IACpC,CAAC,GAAG,CAAC;IACE,MAAM,OAAO,SAAS,SAAS,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,MAAM,KAAK,GAAG,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACzD,YAAY,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,EAAE;IACvB,gBAAgB,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5C,aAAa;IACb,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,CAAC,OAAO,QAAQ,KAAK,WAAW;IAChD,oBAAoB,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;IACvD,oBAAoB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACvC,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IAC5C,SAAS;IACT;IACA;IACA;IACA,QAAQ,MAAM,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;IACrD,QAAQ,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC;IACtD,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,SAAS,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC,YAAY,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC;IACV,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC5C,YAAY,IAAI,KAAK,GAAG,CAAC,CAAC;IAC1B,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;IAC9B,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY;IACtD,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChC,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY;IAC/C,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IAC5B,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI;IACnC;IACA,YAAY,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;IACzE,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B,aAAa;IACb;IACA,YAAY,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE;IACzC,gBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,CAAC;IAChF,gBAAgB,OAAO,KAAK,CAAC;IAC7B,aAAa;IACb;IACA,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS,CAAC;IACV;IACA,QAAQ,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtE;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC1C;IACA,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC9C,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IAC5C,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,aAEa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS,CAAC;IACV,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,aAAa;IACb;IACA;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,aAAa,CAAC,OAAO,EAAE,IAAI,IAAI;IACvC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;IACrC,gBAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,aAAa,CAAC,CAAC;IACf,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3D,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACnD,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;IAChD,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAClE,iBAAiB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACvE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE;IACvB,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;IACtB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC,YAAY,MAAM,EAAE,MAAM;IAC1B,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC,CAAC;IACX,QAAQ,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9B,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACnC,QAAQ,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IAC3B,KAAK;IACL,CAAC;IACM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IAC3C,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAC/D,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACtI,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAIA,GAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,QAAQ,IAAI;IACZ,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,YAAY,IAAI;IAChB,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC5C,oBAAoB,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACjF,oBAAoB,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC1D,wBAAwB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACtE,4BAA4B,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,yBAAyB;IACzB,qBAAqB;IACrB,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;IACxC,gBAAgB,IAAI;IACpB,oBAAoB,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IACrF,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE,GAAG;IAC7B,aAAa;IACb,YAAY,IAAI;IAChB,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB;IACA,YAAY,IAAI,iBAAiB,IAAI,GAAG,EAAE;IAC1C,gBAAgB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IAChE,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAC1C,gBAAgB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IACvD,aAAa;IACb,YAAY,GAAG,CAAC,kBAAkB,GAAG,MAAM;IAC3C,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,UAAU;IACxC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE;IAC/D,oBAAoB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClC,iBAAiB;IACjB,qBAAqB;IACrB;IACA;IACA,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM;IAC5C,wBAAwB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtF,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAC1B,iBAAiB;IACjB,aAAa,CAAC;IACd,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB;IACA;IACA;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACjD,YAAY,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,SAAS,EAAE;IACvB,QAAQ,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE;IAClE,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAC5C,QAAQ,IAAI,SAAS,EAAE;IACvB,YAAY,IAAI;IAChB,gBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACjC,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;IAC3C,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;IAC3B,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,YAAY,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,KAAK;IACL,CAAC;IACD,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;IACtB;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IACrC;IACA,IAAI,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;IAC3C;IACA,QAAQ,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC/C,KAAK;IACL,SAAS,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACrD,QAAQ,MAAM,gBAAgB,GAAG,YAAY,IAAIF,cAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IACpF,QAAQ,gBAAgB,CAAC,gBAAgB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IACjE,KAAK;IACL,CAAC;IACD,SAAS,aAAa,GAAG;IACzB,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE;IACpC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IAChD,YAAY,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL;;ICjZO,MAAM,QAAQ,GAAG,CAAC,MAAM;IAC/B,IAAI,MAAM,kBAAkB,GAAG,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC;IACtG,IAAI,IAAI,kBAAkB,EAAE;IAC5B,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,EAAE,YAAY,KAAK,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,KAAK;IACL,CAAC,GAAG,CAAC;IACE,MAAMG,WAAS,GAAGH,cAAU,CAAC,SAAS,IAAIA,cAAU,CAAC,YAAY,CAAC;IAClE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IACnC,MAAM,iBAAiB,GAAG,aAAa;;ICN9C;IACA,MAAM,aAAa,GAAG,OAAO,SAAS,KAAK,WAAW;IACtD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;IACzC,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC;IAC/C,MAAM,EAAE,SAAS,SAAS,CAAC;IAClC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;IAC3B;IACA,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C;IACA,QAAQ,MAAM,IAAI,GAAG,aAAa;IAClC,cAAc,EAAE;IAChB,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACnO,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IACpC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAClD,SAAS;IACT,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,qBAAqB,IAAI,CAAC,aAAa;IACvD,sBAAsB,SAAS;IAC/B,0BAA0B,IAAIG,WAAS,CAAC,GAAG,EAAE,SAAS,CAAC;IACvD,0BAA0B,IAAIA,WAAS,CAAC,GAAG,CAAC;IAC5C,sBAAsB,IAAIA,WAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1D,SAAS;IACT,QAAQ,OAAO,GAAG,EAAE;IACpB,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,iBAAiB,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,iBAAiB,GAAG;IACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM;IAC/B,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACxC,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC;IACrD,YAAY,WAAW,EAAE,6BAA6B;IACtD,YAAY,OAAO,EAAE,UAAU;IAC/B,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAClE,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACjD,YAAY,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,YAAY,MAAM,UAAU,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,YAAY,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI;IAC9D;IACA,gBAAgB,MAAM,IAAI,GAAG,EAAE,CAAC;IAchC;IACA;IACA;IACA,gBAAgB,IAAI;IACpB,oBAAoB,IAAI,qBAAqB,EAAE;IAC/C;IACA,wBAAwB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,qBAGqB;IACrB,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,UAAU,EAAE;IAChC;IACA;IACA,oBAAoB,QAAQ,CAAC,MAAM;IACnC,wBAAwB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7C,wBAAwB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;IAC5C,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAC5B,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACvD,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAChE,iBAAiB,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACrE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAClC,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,CAAC,CAACA,WAAS,CAAC;IAC3B,KAAK;IACL;;ICzLO,MAAM,UAAU,GAAG;IAC1B,IAAI,SAAS,EAAE,EAAE;IACjB,IAAI,OAAO,EAAE,OAAO;IACpB,CAAC;;ICLD;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,EAAE,GAAG,yOAAyO,CAAC;IACrP,MAAM,KAAK,GAAG;IACd,IAAI,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IACjJ,CAAC,CAAC;IACK,SAAS,KAAK,CAAC,GAAG,EAAE;IAC3B,IAAI,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1G,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,KAAK;IACL,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;IACzB,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjF,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3F,QAAQ,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,KAAK;IACL,IAAI,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,IAAI,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD,SAAS,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;IACtD,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;IAC/B,QAAQ,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IACrE,QAAQ,IAAI,EAAE,EAAE;IAChB,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC1B,SAAS;IACT,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,CAAC;IAChB;;IC1CO,MAAMC,QAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE;IAChC,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,IAAI,CAAC;IACvB,SAAS;IACT,QAAQ,IAAI,GAAG,EAAE;IACjB,YAAY,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,YAAY,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;IACrC,YAAY,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC;IAC7E,YAAY,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACjC,YAAY,IAAI,GAAG,CAAC,KAAK;IACzB,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,SAAS;IACT,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE;IAC5B,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAClD,SAAS;IACT,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM;IACnB,YAAY,IAAI,IAAI,IAAI,CAAC,MAAM;IAC/B,kBAAkB,IAAI,CAAC,MAAM;IAC7B,kBAAkB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACpF,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,QAAQ;IACrB,YAAY,IAAI,CAAC,QAAQ;IACzB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;IACpF,QAAQ,IAAI,CAAC,IAAI;IACjB,YAAY,IAAI,CAAC,IAAI;IACrB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI;IACjE,sBAAsB,QAAQ,CAAC,IAAI;IACnC,sBAAsB,IAAI,CAAC,MAAM;IACjC,0BAA0B,KAAK;IAC/B,0BAA0B,IAAI,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtE,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,YAAY,IAAI,EAAE,YAAY;IAC9B,YAAY,KAAK,EAAE,KAAK;IACxB,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,OAAO,EAAE,IAAI;IACzB,YAAY,cAAc,EAAE,GAAG;IAC/B,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,kBAAkB,EAAE,IAAI;IACpC,YAAY,iBAAiB,EAAE;IAC/B,gBAAgB,SAAS,EAAE,IAAI;IAC/B,aAAa;IACb,YAAY,gBAAgB,EAAE,EAAE;IAChC,YAAY,mBAAmB,EAAE,IAAI;IACrC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACjE,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACvB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,QAAQ,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACpD,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;IAC/C;IACA;IACA;IACA,gBAAgB,IAAI,CAAC,yBAAyB,GAAG,MAAM;IACvD,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC;IACA,wBAAwB,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAC5D,wBAAwB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC/C,qBAAqB;IACrB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACxF,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;IAC/C,gBAAgB,IAAI,CAAC,oBAAoB,GAAG,MAAM;IAClD,oBAAoB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;IACpD,wBAAwB,WAAW,EAAE,yBAAyB;IAC9D,qBAAqB,CAAC,CAAC;IACvB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC9E,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,eAAe,CAAC,IAAI,EAAE;IAC1B,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD;IACA,QAAQ,KAAK,CAAC,GAAG,GAAGL,UAAQ,CAAC;IAC7B;IACA,QAAQ,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC/B;IACA,QAAQ,IAAI,IAAI,CAAC,EAAE;IACnB,YAAY,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IAChC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE;IACpF,YAAY,KAAK;IACjB,YAAY,MAAM,EAAE,IAAI;IACxB,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACnC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;IAC/B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;IAC3B,SAAS,CAAC,CAAC;IACX,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,SAAS,CAAC;IACtB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe;IACrC,YAAYK,QAAM,CAAC,qBAAqB;IACxC,YAAY,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;IACzD,YAAY,SAAS,GAAG,WAAW,CAAC;IACpC,SAAS;IACT,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;IAC/C;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACtE,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,aAAa;IACb,YAAY,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC;IACA,QAAQ,IAAI;IACZ,YAAY,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACpC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,SAAS,EAAE;IAC5B,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC;IACA,QAAQ,SAAS;IACjB,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,IAAI,EAAE;IAChB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI;IAC5C,gBAAgB,IAAI,MAAM;IAC1B,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC,IAAI,EAAE;IACjE,oBAAoB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1C,oBAAoB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,oBAAoB,IAAI,CAAC,SAAS;IAClC,wBAAwB,OAAO;IAC/B,oBAAoBA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC;IAClF,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM;IAC/C,wBAAwB,IAAI,MAAM;IAClC,4BAA4B,OAAO;IACnC,wBAAwB,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxD,4BAA4B,OAAO;IACnC,wBAAwB,OAAO,EAAE,CAAC;IAClC,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrD,wBAAwB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9D,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChE,wBAAwB,SAAS,GAAG,IAAI,CAAC;IACzC,wBAAwB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/C,wBAAwB,IAAI,CAAC,KAAK,EAAE,CAAC;IACrC,qBAAqB,CAAC,CAAC;IACvB,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACzD;IACA,oBAAoB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IACnD,oBAAoB,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC3D,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,QAAQ,SAAS,eAAe,GAAG;IACnC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB;IACA,YAAY,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,OAAO,EAAE,CAAC;IACtB,YAAY,SAAS,CAAC,KAAK,EAAE,CAAC;IAC9B,YAAY,SAAS,GAAG,IAAI,CAAC;IAC7B,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,GAAG,IAAI;IAC/B,YAAY,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;IAC3D;IACA,YAAY,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IAC7C,YAAY,eAAe,EAAE,CAAC;IAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrD,SAAS,CAAC;IACV,QAAQ,SAAS,gBAAgB,GAAG;IACpC,YAAY,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,SAAS,OAAO,GAAG;IAC3B,YAAY,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,SAAS;IACT;IACA,QAAQ,SAAS,SAAS,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;IACzD,gBAAgB,eAAe,EAAE,CAAC;IAClC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,MAAM;IAC9B,YAAY,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAChE,YAAY,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,QAAQ,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChD,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1C,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC3E,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB;IACA;IACA,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO;IAC7B,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IAClC,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC3C,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC/B,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,YAAY,QAAQ,MAAM,CAAC,IAAI;IAC/B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5C,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,OAAO;IAC5B,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1D;IACA,oBAAoB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3C,oBAAoB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,SAAS;IAC9B,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,oBAAoB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,aAAa;IACb,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7C,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3B,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,OAAO;IACnB,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,gBAAgB,GAAG;IACvB,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IACxD,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAC1C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACvD;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ;IACnC,YAAY,CAAC,IAAI,CAAC,SAAS;IAC3B,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC;IACA;IACA,YAAY,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAChD,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,GAAG;IACzB,QAAQ,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;IAC7C,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,sBAAsB,EAAE;IACrC,YAAY,OAAO,IAAI,CAAC,WAAW,CAAC;IACpC,SAAS;IACT,QAAQ,IAAI,WAAW,GAAG,CAAC,CAAC;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1D,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa;IACb,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;IACxD,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,aAAa;IACb,YAAY,WAAW,IAAI,CAAC,CAAC;IAC7B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IACxC,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,EAAE;IACxC,YAAY,EAAE,GAAG,IAAI,CAAC;IACtB,YAAY,IAAI,GAAG,SAAS,CAAC;IAC7B,SAAS;IACT,QAAQ,IAAI,UAAU,KAAK,OAAO,OAAO,EAAE;IAC3C,YAAY,EAAE,GAAG,OAAO,CAAC;IACzB,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3E,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAChC,QAAQ,OAAO,CAAC,QAAQ,GAAG,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,OAAO,EAAE,OAAO;IAC5B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,IAAI,EAAE;IACd,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC,SAAS,CAAC;IACV,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACtD,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS,CAAC;IACV,QAAQ,MAAM,cAAc,GAAG,MAAM;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACvD,SAAS,CAAC;IACV,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACzC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IACzC,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC,wBAAwB,cAAc,EAAE,CAAC;IACzC,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,KAAK,EAAE,CAAC;IAChC,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,iBAAiB,IAAI,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,KAAK,EAAE,CAAC;IACxB,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C;IACA,YAAY,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,YAAY,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;IAC3D,gBAAgB,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAC3F,gBAAgB,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACjF,aAAa;IACb;IACA,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC;IACA,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5D;IACA;IACA,YAAY,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAClC,YAAY,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACnC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,MAAM,gBAAgB,GAAG,EAAE,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,QAAQ,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,QAAQ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC3B,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,gBAAgB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,OAAO,gBAAgB,CAAC;IAChC,KAAK;IACL,CAAC;AACDA,YAAM,CAAC,QAAQ,GAAGL,UAAQ;;ICnkB1B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE;IACzC,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;IAClB;IACA,IAAI,GAAG,GAAG,GAAG,KAAK,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,IAAI,IAAI,GAAG;IACnB,QAAQ,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAC7C;IACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACvC,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;IACzC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;IACrC,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC9C,YAAY,IAAI,WAAW,KAAK,OAAO,GAAG,EAAE;IAC5C,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;IAChD,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;IACvC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,KAAK;IACL;IACA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;IACnB,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC9C,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5B,SAAS;IACT,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IACpD,YAAY,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IAC7B,SAAS;IACT,KAAK;IACL,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;IAC/B,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;IACxD;IACA,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACjE;IACA,IAAI,GAAG,CAAC,IAAI;IACZ,QAAQ,GAAG,CAAC,QAAQ;IACpB,YAAY,KAAK;IACjB,YAAY,IAAI;IAChB,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,OAAO,GAAG,CAAC;IACf;;IC1DA,MAAM,qBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK;IACxB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC3C,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D;IACA;IACA;IACA;IACA;IACO,SAAS,QAAQ,CAAC,GAAG,EAAE;IAC9B,IAAI,QAAQ,CAAC,qBAAqB,KAAK,GAAG,YAAY,WAAW,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACjF,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC;IAC/C,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC,EAAE;IACjD,CAAC;IACM,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;IACvC,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACzC,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACpD,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IACnC,gBAAgB,OAAO,IAAI,CAAC;IAC5B,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;IACvB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,GAAG,CAAC,MAAM;IAClB,QAAQ,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;IACxC,QAAQ,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAChC,QAAQ,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;IAC3B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IACnF,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB;;IChDA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE;IAC1C,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IACnC,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC;IACxB,IAAI,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;IACxB,QAAQ,MAAM,WAAW,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACxE,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9D,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;IAClE,QAAQ,MAAM,OAAO,GAAG,EAAE,CAAC;IAC3B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IACnD,IAAI,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;IACnC,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;IAC5C,QAAQ,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;IACzD,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC;IACzB,YAAY,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,QAAQ,IAAI,YAAY,EAAE;IAC1B,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnD,SAAS;IACT,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,SAAS;IACT,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACvC,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB;;IC/EA;IACA;IACA;IACA;IACA;IACO,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,CAAC;IACtB,CAAC,UAAU,UAAU,EAAE;IACvB,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IAClD,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;IAClE,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;IAChE,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IACpC;IACA;IACA;IACO,MAAM,OAAO,CAAC;IACrB;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,QAAQ,EAAE;IAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE;IAChB,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,GAAG,EAAE;IAC1E,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;IAChC,gBAAgB,GAAG,CAAC,IAAI;IACxB,oBAAoB,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK;IACjD,0BAA0B,UAAU,CAAC,YAAY;IACjD,0BAA0B,UAAU,CAAC,UAAU,CAAC;IAChD,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB;IACA,QAAQ,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAChD,YAAY,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAChD,YAAY,GAAG,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IACzC,SAAS;IACT;IACA;IACA,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE;IACxC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IACjC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE;IAC5B,YAAY,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;IAC9B,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB,QAAQ,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChE,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IAC/C,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACO,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,OAAO,EAAE;IACzB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,GAAG,EAAE;IACb,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACrC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;IACpC,gBAAgB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACnF,aAAa;IACb,YAAY,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IACvD,gBAAgB,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IACvD;IACA,gBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrE;IACA,gBAAgB,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,EAAE;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,aAAa;IACb,SAAS;IACT,aAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;IAC9C;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACrC,gBAAgB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACpF,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChE,gBAAgB,IAAI,MAAM,EAAE;IAC5B;IACA,oBAAoB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,GAAG,EAAE;IACtB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB;IACA,QAAQ,MAAM,CAAC,GAAG;IAClB,YAAY,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC;IACV,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;IAC9C,YAAY,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAC9C,YAAY,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAC9C,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG;IAClE,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChD,YAAY,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC7D,gBAAgB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACvD,aAAa;IACb,YAAY,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IACvC,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,GAAG,KAAK,CAAC;IAC7B,oBAAoB,MAAM;IAC1B,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACxB,SAAS;IACT;IACA,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,QAAQ,IAAI,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;IACjD,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;IACjD,oBAAoB,EAAE,CAAC,CAAC;IACxB,oBAAoB,MAAM;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7B,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;IACzD,gBAAgB,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,KAAK;IACL,IAAI,QAAQ,CAAC,GAAG,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,OAAO,KAAK,CAAC;IACzB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;IACzC,QAAQ,QAAQ,IAAI;IACpB,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC;IACnD,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,OAAO,KAAK,SAAS,CAAC;IAC7C,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC;IAClF,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;IAChC,YAAY,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;IACxD,SAAS;IACT,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,mBAAmB,CAAC;IAC1B,IAAI,WAAW,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,OAAO,EAAE;IAC5B,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;IAChE;IACA,YAAY,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,YAAY,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC1C,YAAY,OAAO,MAAM,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,sBAAsB,GAAG;IAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,KAAK;IACL;;;;;;;;;;IC/RO,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;IAChC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnB,IAAI,OAAO,SAAS,UAAU,GAAG;IACjC,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,KAAK,CAAC;IACN;;ICFA;IACA;IACA;IACA;IACA,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,CAAC;IACd,IAAI,aAAa,EAAE,CAAC;IACpB,IAAI,UAAU,EAAE,CAAC;IACjB,IAAI,aAAa,EAAE,CAAC;IACpB;IACA,IAAI,WAAW,EAAE,CAAC;IAClB,IAAI,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,MAAM,MAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA,IAAI,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;IAC/B,QAAQ,KAAK,EAAE,CAAC;IAChB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC;IACA;IACA;IACA,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACrB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY;IAChC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,YAAY,GAAG;IACvB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,IAAI;IACrB,YAAY,OAAO;IACnB,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG;IACpB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,MAAM,GAAG;IACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,SAAS;IAC1B,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC;IACrC,YAAY,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3B,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW;IAC1C,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE;IAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;IACtB,QAAQ,IAAI,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;IAChD,YAAY,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,4BAA4B,CAAC,CAAC;IAChF,SAAS;IACT,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzB,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,UAAU,CAAC,KAAK;IAClC,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC;IACV,QAAQ,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IAC5B,QAAQ,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC;IAChE;IACA,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;IACzD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,YAAY,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,YAAY,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;IAClD,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS;IACpC,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC9C,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/F,QAAQ,IAAI,aAAa,EAAE,CAClB;IACT,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3C,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;IACnC,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAChC,YAAY,OAAO;IACnB,SAAS;IACT;IACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM;IACjD,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7D,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IAClD,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,iBAAiB;IACjB,aAAa;IACb,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACjE,SAAS,EAAE,OAAO,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;IACrC;IACA,YAAY,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,MAAM,EAAE;IACnB,QAAQ,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC9B,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE;IAC5C,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;IAChC,gBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,aAAa,CAAC,CAAC;IACf,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IAC7B,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa;IAC1B,YAAY,OAAO;IACnB,QAAQ,QAAQ,MAAM,CAAC,IAAI;IAC3B,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACpD,oBAAoB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC/C,oBAAoB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACvC,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,KAAK,CAAC,2LAA2L,CAAC,CAAC,CAAC;IAC/P,iBAAiB;IACjB,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;IACpC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,gBAAgB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D;IACA,gBAAgB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5C,gBAAgB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACxD,gBAAgB,MAAM;IACtB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,SAAS;IACT,KAAK;IACL,IAAI,SAAS,CAAC,IAAI,EAAE;IACpB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IAC7D,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACzD,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,aAAa;IACb,SAAS;IACT,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,EAAE,EAAE;IACZ,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;IACzB,QAAQ,OAAO,UAAU,GAAG,IAAI,EAAE;IAClC;IACA,YAAY,IAAI,IAAI;IACpB,gBAAgB,OAAO;IACvB,YAAY,IAAI,GAAG,IAAI,CAAC;IACxB,YAAY,IAAI,CAAC,MAAM,CAAC;IACxB,gBAAgB,IAAI,EAAE,UAAU,CAAC,GAAG;IACpC,gBAAgB,EAAE,EAAE,EAAE;IACtB,gBAAgB,IAAI,EAAE,IAAI;IAC1B,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,MAAM,EAAE;IAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,QAAQ,IAAI,UAAU,KAAK,OAAO,GAAG,EAAE;IACvC,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxC,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,EAAE,EAAE;IAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;IAC5C,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;IACvB;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IAC5D,YAAY,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B;IACA,YAAY,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,QAAQ,EAAE;IACvB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,QAAQ,GAAG;IACnB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACnC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,QAAQ,EAAE;IACpB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,QAAQ,EAAE;IACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,QAAQ,EAAE;IACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACjC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;IACjD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,OAAO,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,aAAa,CAAC,QAAQ,EAAE;IAC5B,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,CAAC,QAAQ,EAAE;IACjC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;IACzC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC;IACzD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAC5C,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,OAAO,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,uBAAuB,CAAC,MAAM,EAAE;IACpC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;IAC7E,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACjE,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,aAAa;IACb,SAAS;IACT,KAAK;IACL;;IC9rBA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,OAAO,CAAC,IAAI,EAAE;IAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;IAC9B,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;IACjC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;IACzC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,EAAE,GAAG,SAAS,CAAC;IAChF,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;IACtC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;IAClB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;IAChD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;;IC3DM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,SAAS,CAAC;IAC5B,SAAS;IACT,QAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,QAAQ,CAAC,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;IAC/D,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC;IACrE,QAAQ,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,mBAAmB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IACvG,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC;IACnC,YAAY,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE;IAC5C,YAAY,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE;IAC9C,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IAC9C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC;IACvD,QAAQ,IAAI,IAAI,CAAC,YAAY;IAC7B,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL,IAAI,YAAY,CAAC,CAAC,EAAE;IACpB,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,aAAa,CAAC;IACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,iBAAiB,CAAC,CAAC,EAAE;IACzB,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAC3C,QAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,mBAAmB,CAAC,CAAC,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC;IAC7C,QAAQ,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,OAAO,CAAC,CAAC,EAAE;IACf,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa;IAC/B,YAAY,IAAI,CAAC,aAAa;IAC9B,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7C,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIM,QAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACrC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC;IACA,QAAQ,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY;IAC9D,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;IACvB,SAAS,CAAC,CAAC;IACX;IACA,QAAQ,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK;IACtD,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACxC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,EAAE,EAAE;IACpB,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC;IACxB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5C,aAAa;IACb,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,YAAY,IAAI,OAAO,KAAK,CAAC,EAAE;IAC/B,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb;IACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,cAAc,EAAE,CAAC;IACjC,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B;IACA,gBAAgB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,aAAa,EAAE,OAAO,CAAC,CAAC;IACxB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB;IACA,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC;IACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnQ,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,MAAM,EAAE;IACtB;IACA,QAAQ,QAAQ,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IACtB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,MAAM,EAAE;IACrB,YAAY,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;IAC/B,gBAAgB,OAAO;IACvB,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxD,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAClC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,IAAI,IAAI,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACvD,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;IACpD,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;IACjE,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IACtC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9E;IACA,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;IACnC,oBAAoB,IAAI,GAAG,EAAE;IAC7B,wBAAwB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnD,wBAAwB,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,wBAAwB,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAClE,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC,CAAC;IACtB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,GAAG;IAClB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9C,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,KAAK;IACL;;IClWA;IACA;IACA;IACA,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,GAAG,CAAC;IACnB,QAAQ,GAAG,GAAG,SAAS,CAAC;IACxB,KAAK;IACL,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;IACvD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACzB,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7B,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ;IACvC,QAAQ,IAAI,CAAC,sBAAsB,CAAC;IACpC,QAAQ,KAAK,KAAK,IAAI,CAAC,SAAS;IAChC,QAAQ,aAAa,CAAC;IACtB,IAAI,IAAI,EAAE,CAAC;IACX,IAAI,IAAI,aAAa,EAAE;IACvB,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;IACxB,YAAY,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,SAAS;IACT,QAAQ,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACrC,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD;IACA;IACA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;IACtB,IAAI,OAAO;IACX,IAAI,MAAM;IACV,IAAI,EAAE,EAAE,MAAM;IACd,IAAI,OAAO,EAAE,MAAM;IACnB,CAAC,CAAC;;;;QCzCU,IAAI,CAAA;QACJC,QAAM,CAAA;UAEX,OAAO,GAAA,CAAA,OAAA,EAAa,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,CAAA,CAAA;;IAE9E,KAAK,CAAI,CAAA,EAAA,OAAO,CACf,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,IAAI,IAAK,IAAI,CAAC,IAAI,EACxB,CAAA,CAAA,IAAI,CAAE,IAAI,IAAA;IAEV,CAAA,IAAI,GAAG,IAAI,CAAA;;KACXA,QAAM,GAAGC,MAAE,CAAC,OAAO,EAAA;IAElB,EAAA,IAAI,EAAE,OAAO;IACb,EAAA,KAAK,EAEJ,EAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA;;;;;;;;;;;;;;;;;;;;;gBCmC0D,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG0E,aAE1E,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;IAM+B,CAAA,IAAA,SAAA,WAAA,GAAG,IAAC,OAAO,GAAA,EAAA,CAAA;;;;;;;;;;;;;;IAAX,GAAA,IAAA,KAAA,YAAA,CAAA,IAAA,SAAA,MAAA,SAAA,WAAA,GAAG,IAAC,OAAO,GAAA,EAAA,CAAA,EAAA,QAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAA5B,IAAA,IAAA,UAAA,GAAG,IAAC,IAAI;;;;;;;;;;;;;;;;;IAAR,GAAA,IAAA,KAAA,YAAA,CAAA,EAAA,aAAA,CAAA,IAAA,WAAA,GAAG,IAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAiBqB,MAE3C,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BArCgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAiBzE,GAAI,CAAA,CAAA,CAAA,CAAA;;;;oCAAT,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;+BAkB0B,GAAQ,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBARxB,GAAG,CAAA,CAAA,CAAA,KAAA,KAAA,CAAA,EAAA,mBAAA,CAAA,6BAAA,GAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA,CAAA;;;;;;;;;;;OA9BtB,UA0CK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAxBJ,UAMK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OALJ,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;OAIN,UAQK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAPJ,UAMM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;mBAJW,GAAG,CAAA,CAAA,CAAA,KAAA,KAAA,CAAA,EAAA;iCAAH,GAAG,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;sDAEN,GAAW,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;qEA7BM,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAiBzE,GAAI,CAAA,CAAA,CAAA,CAAA;;;;mCAAT,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;4BAAJ,MAAI,EAAA,CAAA,GAAA,WAAA,CAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;yCAUU,GAAG,CAAA,CAAA,CAAA,KAAA,IAAA,CAAA,SAAA,EAAA;iCAAH,GAAG,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;sCAVjB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA/DR,CAAAD,QAAM,CAAC,EAAE,CAAC,SAAS,EAAG,CAAA,IAAI,EAAE,OAAO,KAAA;MAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,CAAA;MAChB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAA,CAAA;MACnB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAA,CAAA;;;IAGX,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IAEhB,CAAA,IAAA,GAAG,GAAG,EAAE,CAAA;SACR,SAAS,CAAA;SACT,IAAI,GAAA,EAAA,CAAA;;cAEC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAA;IAEzB,EAAA,IAAA,IAAI,KAAK,IAAI,CAAC,QAAQ,EACzB,IAAI,GAAG,IAAI,CAAA;sBACZ,IAAI,GAAA,CAAA,GAAO,IAAI,EAAI,EAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAA,CAAA,CAAA,CAAA;;;cAGvC,QAAQ,GAAA;sBAEhB,GAAG,GAAG,GAAG,CAAC,IAAI,EAAA,CAAA,CAAA;;UACV,GAAG,CAAC,MAAM,GAAG,CAAC,EAAA;IACjB,GAAAA,QAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAA,CAAA;OAC1B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAA,CAAA;;;IAGlB,EAAA,YAAA,CAAA,CAAA,EAAA,GAAG,GAAG,EAAE,CAAA,CAAA;IACR,EAAA,SAAS,CAAC,KAAK,EAAA,CAAA;;;IAGP,CAAA,SAAA,WAAW,CAAC,GAAG,EAAA;IAEnB,EAAA,IAAA,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,EAAA;IAEtC,GAAA,GAAG,CAAC,cAAc,EAAA,CAAA;OAClB,QAAQ,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;MAoCQ,GAAG,GAAA,IAAA,CAAA,SAAA,CAAA;;;;;;OACR,SAAS,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCrE8D,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGiC,KAEjC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAI0D,QAEzD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAlB+B,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA4DK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OA1CJ,UAwCK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OApCJ,UAAiB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACjB,UAkCK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjCJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;qEAtB3B,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGuC,UAEvC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA0CK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAxBJ,UAsBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OArBJ,UAAqB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACrB,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAlBJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAkD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;qEAnBrB,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGuC,aAEvC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAI0D,OAEzD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAQsD,QAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAC6D,QAE7D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACqD,QAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACqD,QAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BArC8B,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA8CK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OA5BJ,UAyBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OArBJ,UAAkB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAClB,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAlBJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;qEAtB3B,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGuC,aAEvC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA4BK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAVJ,UAOK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OANJ,UAAmD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACnD,UAIM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHL,UAA+C,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;OAAxB,UAAiB,CAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;OACxC,UAA+C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC/C,UAAoC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;qEApBN,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCqBgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGoC,QAEpC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UAkDK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAhCJ,UA8BK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OApBJ,UAmBM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjBL,UAAoD,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAA7B,UAAsB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAC7C,UAA+B,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAE/B,UAAqE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OACrE,UAA4D,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAApB,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAErD,UAA8D,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC9D,UAA8D,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAArB,UAAc,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAEvD,UAA4F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5F,UAAkE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAAvB,UAAgB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAE3D,UAGK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAwD,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAAjC,UAA0B,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACjD,UAAuF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAExF,UAAoC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;6DAlBL,YAAY,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;;;;qEAzBb,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAnBzE,SAAA,YAAY,CAAC,GAAG,EAAA;IAEpB,CAAA,IAAA,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,EAAA,CAAA;KAC1C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAA;KAChC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA,CAAA;;SACnB,WAAW,EAAA;MAEd,KAAK,CAAC,qBAAqB,EAAA,EAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,CAAC,MAAM,EAAA,CAAA,CAAA;;;;;;;IAZR,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGkC,QAElC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA+KK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OA3JJ,UAwJK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAvJJ,UAAkD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAClD,UAqJM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAnJL,UAA0E,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC1E,UAAsE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAArB,UAAc,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAC/D,UA+IK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA7IJ,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAe,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACf,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAA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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":";;;;;IAAA,SAAS,IAAI,GAAG,GAAG;IACnB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;IAC1B;IACA,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG;IACvB,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD,SAAS,UAAU,CAAC,KAAK,EAAE;IAC3B,IAAI,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;IAClF,CAAC;IACD,SAAS,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACzD,IAAI,OAAO,CAAC,aAAa,GAAG;IAC5B,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACzC,KAAK,CAAC;IACN,CAAC;IACD,SAAS,GAAG,CAAC,EAAE,EAAE;IACjB,IAAI,OAAO,EAAE,EAAE,CAAC;IAChB,CAAC;IACD,SAAS,YAAY,GAAG;IACxB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,SAAS,OAAO,CAAC,GAAG,EAAE;IACtB,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,SAAS,WAAW,CAAC,KAAK,EAAE;IAC5B,IAAI,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;IACvC,CAAC;IACD,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,KAAK,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,oBAAoB,CAAC;IACzB,SAAS,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE;IACzC,IAAI,IAAI,CAAC,oBAAoB,EAAE;IAC/B,QAAQ,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3D,KAAK;IACL,IAAI,oBAAoB,CAAC,IAAI,GAAG,GAAG,CAAC;IACpC,IAAI,OAAO,WAAW,KAAK,oBAAoB,CAAC,IAAI,CAAC;IACrD,CAAC;IAID,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE;IACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE;IAChE,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAC9E,KAAK;IACL,CAAC;IACD,SAAS,SAAS,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE;IACxC,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;IACvB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,CAAC,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC;IACjE,CAAC;IAMD,SAAS,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzD,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,SAAS,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IACnD,IAAI,IAAI,UAAU,EAAE;IACpB,QAAQ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACxE,QAAQ,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvC,KAAK;IACL,CAAC;IACD,SAAS,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IACxD,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;IAC9B,UAAU,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,UAAU,OAAO,CAAC,GAAG,CAAC;IACtB,CAAC;IACD,SAAS,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1D,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;IAC7B,QAAQ,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;IACzC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACtC,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC;IAC9B,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;IAC7C,gBAAgB,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,aAAa;IACb,YAAY,OAAO,MAAM,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IACpC,KAAK;IACL,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC;IACzB,CAAC;IACD,SAAS,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE;IAClG,IAAI,IAAI,YAAY,EAAE;IACtB,QAAQ,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAClG,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC3C,KAAK;IACL,CAAC;IAKD,SAAS,wBAAwB,CAAC,OAAO,EAAE;IAC3C,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE;IACjC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC;IACzB,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;IACzC,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAgCD,SAAS,aAAa,CAAC,KAAK,EAAE;IAC9B,IAAI,OAAO,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;IACtC,CAAC;IAMD,SAAS,gBAAgB,CAAC,aAAa,EAAE;IACzC,IAAI,OAAO,aAAa,IAAI,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9F,CAAC;AACD;IACA,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IAChD,IAAI,GAAG,GAAG,SAAS;IACnB,MAAM,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;IACpC,MAAM,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,SAAS,GAAG,EAAE,IAAI,qBAAqB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AAQ7D;IACA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACxB,SAAS,SAAS,CAAC,GAAG,EAAE;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI;IAC1B,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;IAC1B,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;IACrB,SAAS;IACT,KAAK,CAAC,CAAC;IACP,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;IACxB,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAOD;IACA;IACA;IACA;IACA,SAAS,IAAI,CAAC,QAAQ,EAAE;IACxB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;IACxB,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,IAAI,OAAO;IACX,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,IAAI;IACxC,YAAY,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1D,SAAS,CAAC;IACV,QAAQ,KAAK,GAAG;IAChB,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,SAAS;IACT,KAAK,CAAC;IACN,CAAC;IAuGD,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;IAC9B,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAUD,SAAS,kBAAkB,CAAC,IAAI,EAAE;IAClC,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,QAAQ,CAAC;IACxB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;IAC5E,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;IAC3B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,SAAS,uBAAuB,CAAC,IAAI,EAAE;IACvC,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;IAC/D,IAAI,OAAO,aAAa,CAAC,KAAK,CAAC;IAC/B,CAAC;IACD,SAAS,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE;IACxC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB,CAAC;IAyBD,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IACtC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;IAC9C,CAAC;IASD,SAAS,MAAM,CAAC,IAAI,EAAE;IACtB,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;IACzB,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK;IACL,CAAC;IACD,SAAS,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE;IAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACnD,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC;IACzB,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvC,KAAK;IACL,CAAC;IACD,SAAS,OAAO,CAAC,IAAI,EAAE;IACvB,IAAI,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAgBD,SAAS,WAAW,CAAC,IAAI,EAAE;IAC3B,IAAI,OAAO,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IACD,SAAS,IAAI,CAAC,IAAI,EAAE;IACpB,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,KAAK,GAAG;IACjB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,SAASA,OAAK,GAAG;IACjB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;IAC/C,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IACD,SAAS,eAAe,CAAC,EAAE,EAAE;IAC7B,IAAI,OAAO,UAAU,KAAK,EAAE;IAC5B,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;IAC/B;IACA,QAAQ,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,KAAK,CAAC;IACN,CAAC;IAsBD,SAAS,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IACtC,IAAI,IAAI,KAAK,IAAI,IAAI;IACrB,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,KAAK;IACnD,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAgED,SAAS,QAAQ,CAAC,OAAO,EAAE;IAC3B,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IA4HD,SAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE;IACvC,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;IAC7C,CAAC;IASD,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;IACxB,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACvC,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC;IACzE,KAAK;IACL,CAAC;IACD,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE;IACtC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACvD,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzC,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;IACtC,YAAY,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACnC,YAAY,OAAO;IACnB,SAAS;IACT,KAAK;IACL,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IAOD,SAAS,YAAY,CAAC,MAAM,EAAE;IAC9B,IAAI,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,eAAe,IAAI,eAAe,CAAC,OAAO,CAAC;IACtD,CAAC;IAyDD,SAAS,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7C,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE;IAClF,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;IAyBD,MAAM,OAAO,CAAC;IACd,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,EAAE;IAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrB,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IACrB,YAAY,IAAI,IAAI,CAAC,MAAM;IAC3B,gBAAgB,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD;IACA,gBAAgB,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;IAC5B,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS;IACT,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC/C,KAAK;IACL,IAAI,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACnD,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9C,SAAS;IACT,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;IACjB,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrB,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,CAAC,GAAG;IACR,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK;IACL,CAAC;AAsCD;IACA;IACA;IACA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf;IACA,SAAS,IAAI,CAAC,GAAG,EAAE;IACnB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;IACvB,IAAI,OAAO,CAAC,EAAE;IACd,QAAQ,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC;IACtB,CAAC;IACD,SAAS,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE;IAC7C,IAAI,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC1E,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE;IACrE,IAAI,MAAM,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;IACvC,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,QAAQ,SAAS,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,KAAK;IACL,IAAI,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3B,QAAQ,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxF,KAAK;IACL,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IACjD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChH,IAAI,MAAM,IAAI,CAAC,CAAC;IAChB,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE;IACjC,IAAI,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI;IACrC,UAAU,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IACxC,UAAU,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjD,KAAK,CAAC;IACN,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClD,IAAI,IAAI,OAAO,EAAE;IACjB,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,MAAM,IAAI,OAAO,CAAC;IAC1B,QAAQ,IAAI,CAAC,MAAM;IACnB,YAAY,WAAW,EAAE,CAAC;IAC1B,KAAK;IACL,CAAC;IACD,SAAS,WAAW,GAAG;IACvB,IAAI,GAAG,CAAC,MAAM;IACd,QAAQ,IAAI,MAAM;IAClB,YAAY,OAAO;IACnB,QAAQ,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI;IACvC,YAAY,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;IAClD;IACA,YAAY,IAAI,SAAS;IACzB,gBAAgB,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,SAAS,CAAC,CAAC;IACX,QAAQ,cAAc,CAAC,KAAK,EAAE,CAAC;IAC/B,KAAK,CAAC,CAAC;IACP,CAAC;AAsED;IACA,IAAI,iBAAiB,CAAC;IACtB,SAAS,qBAAqB,CAAC,SAAS,EAAE;IAC1C,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAClC,CAAC;IACD,SAAS,qBAAqB,GAAG;IACjC,IAAI,IAAI,CAAC,iBAAiB;IAC1B,QAAQ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC5E,IAAI,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAWD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,OAAO,CAAC,EAAE,EAAE;IACrB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IACD;IACA;IACA;IACA;IACA;IACA,SAAS,WAAW,CAAC,EAAE,EAAE;IACzB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,SAAS,CAAC,EAAE,EAAE;IACvB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,qBAAqB,GAAG;IACjC,IAAI,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC;IAC9C,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK;IAC1D,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,IAAI,SAAS,EAAE;IACvB;IACA;IACA,YAAY,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,YAAY,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI;IAC5C,gBAAgB,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1C,aAAa,CAAC,CAAC;IACf,YAAY,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC3C,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK,CAAC;IACN,CAAC;IA0CD;IACA;IACA;IACA,SAAS,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE;IAClC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,IAAI,SAAS,EAAE;IACnB;IACA,QAAQ,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,KAAK;IACL,CAAC;AACD;IACA,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAE5B,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B,MAAM,eAAe,GAAG,EAAE,CAAC;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3C,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,SAAS,eAAe,GAAG;IAC3B,IAAI,IAAI,CAAC,gBAAgB,EAAE;IAC3B,QAAQ,gBAAgB,GAAG,IAAI,CAAC;IAChC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,KAAK;IACL,CAAC;IACD,SAAS,IAAI,GAAG;IAChB,IAAI,eAAe,EAAE,CAAC;IACtB,IAAI,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IACD,SAAS,mBAAmB,CAAC,EAAE,EAAE;IACjC,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,SAAS,kBAAkB,CAAC,EAAE,EAAE;IAChC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,SAAS,KAAK,GAAG;IACjB,IAAI,MAAM,eAAe,GAAG,iBAAiB,CAAC;IAC9C,IAAI,GAAG;IACP;IACA;IACA,QAAQ,OAAO,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE;IACnD,YAAY,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzD,YAAY,QAAQ,EAAE,CAAC;IACvB,YAAY,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC7C,YAAY,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjC,SAAS;IACT,QAAQ,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,QAAQ,QAAQ,GAAG,CAAC,CAAC;IACrB,QAAQ,OAAO,iBAAiB,CAAC,MAAM;IACvC,YAAY,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC;IACtC;IACA;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IAC7D,YAAY,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC/C;IACA,gBAAgB,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,gBAAgB,QAAQ,EAAE,CAAC;IAC3B,aAAa;IACb,SAAS;IACT,QAAQ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,KAAK,QAAQ,gBAAgB,CAAC,MAAM,EAAE;IACtC,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE;IACnC,QAAQ,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC;IAChC,KAAK;IACL,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IACD,SAAS,MAAM,CAAC,EAAE,EAAE;IACpB,IAAI,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;IACpB,QAAQ,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IAC/B,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrD,KAAK;IACL,CAAC;AACD;IACA,IAAI,OAAO,CAAC;IACZ,SAAS,IAAI,GAAG;IAChB,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM;IAC3B,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IACzC,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,IAAI,MAAM,CAAC;IACX,SAAS,YAAY,GAAG;IACxB,IAAI,MAAM,GAAG;IACb,QAAQ,CAAC,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,EAAE;IACb,QAAQ,CAAC,EAAE,MAAM;IACjB,KAAK,CAAC;IACN,CAAC;IACD,SAAS,YAAY,GAAG;IACxB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IACnB,QAAQ,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK;IACL,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,SAAS,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE;IACrC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE;IAC1B,QAAQ,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK;IACL,CAAC;IACD,SAAS,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;IACxD,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE;IAC1B,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B,YAAY,OAAO;IACnB,QAAQ,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B,QAAQ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;IAC5B,YAAY,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,YAAY,IAAI,QAAQ,EAAE;IAC1B,gBAAgB,IAAI,MAAM;IAC1B,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,gBAAgB,QAAQ,EAAE,CAAC;IAC3B,aAAa;IACb,SAAS,CAAC,CAAC;IACX,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK;IACL,SAAS,IAAI,QAAQ,EAAE;IACvB,QAAQ,QAAQ,EAAE,CAAC;IACnB,KAAK;IACL,CAAC;IACD,MAAM,eAAe,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACxC,SAAS,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE;IAChD,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;IACxB,IAAI,IAAI,cAAc,CAAC;IACvB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;IAChB,IAAI,SAAS,OAAO,GAAG;IACvB,QAAQ,IAAI,cAAc;IAC1B,YAAY,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9C,KAAK;IACL,IAAI,SAAS,EAAE,GAAG;IAClB,QAAQ,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,eAAe,CAAC;IAC7G,QAAQ,IAAI,GAAG;IACf,YAAY,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1F,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,QAAQ,MAAM,UAAU,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC;IACzC,QAAQ,MAAM,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC/C,QAAQ,IAAI,IAAI;IAChB,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,QAAQ,OAAO,GAAG,IAAI,CAAC;IACvB,QAAQ,mBAAmB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,QAAQ,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI;IAC3B,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,IAAI,GAAG,IAAI,QAAQ,EAAE;IACrC,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,oBAAoB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,oBAAoB,OAAO,EAAE,CAAC;IAC9B,oBAAoB,OAAO,OAAO,GAAG,KAAK,CAAC;IAC3C,iBAAiB;IACjB,gBAAgB,IAAI,GAAG,IAAI,UAAU,EAAE;IACvC,oBAAoB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,GAAG,UAAU,IAAI,QAAQ,CAAC,CAAC;IACpE,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,OAAO,CAAC;IAC3B,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;IACxB,IAAI,OAAO;IACX,QAAQ,KAAK,GAAG;IAChB,YAAY,IAAI,OAAO;IACvB,gBAAgB,OAAO;IACvB,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;IACrC,gBAAgB,MAAM,GAAG,MAAM,EAAE,CAAC;IAClC,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,EAAE,EAAE,CAAC;IACrB,aAAa;IACb,SAAS;IACT,QAAQ,UAAU,GAAG;IACrB,YAAY,OAAO,GAAG,KAAK,CAAC;IAC5B,SAAS;IACT,QAAQ,GAAG,GAAG;IACd,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,OAAO,EAAE,CAAC;IAC1B,gBAAgB,OAAO,GAAG,KAAK,CAAC;IAChC,aAAa;IACb,SAAS;IACT,KAAK,CAAC;IACN,CAAC;AAkKD;IACA,SAAS,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE;IACvC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClC,IAAI,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;IAC7C,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;IAChC,YAAY,OAAO;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;IACjC,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE;IAC/B,YAAY,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1C,YAAY,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnC,SAAS;IACT,QAAQ,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/D,QAAQ,IAAI,WAAW,GAAG,KAAK,CAAC;IAChC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;IACxB,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;IAC7B,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK;IAClD,oBAAoB,IAAI,CAAC,KAAK,KAAK,IAAI,KAAK,EAAE;IAC9C,wBAAwB,YAAY,EAAE,CAAC;IACvC,wBAAwB,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM;IAC1D,4BAA4B,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;IAC1D,gCAAgC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD,6BAA6B;IAC7B,yBAAyB,CAAC,CAAC;IAC3B,wBAAwB,YAAY,EAAE,CAAC;IACvC,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,iBAAiB;IACjB,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,aAAa;IACb,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;IACtB,YAAY,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACpC,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,YAAY,WAAW,GAAG,IAAI,CAAC;IAC/B,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,QAAQ,IAAI,IAAI,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACvC,QAAQ,IAAI,WAAW,EAAE;IACzB,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,KAAK;IACL,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;IAC7B,QAAQ,MAAM,iBAAiB,GAAG,qBAAqB,EAAE,CAAC;IAC1D,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI;IAC9B,YAAY,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACrD,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpD,YAAY,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,SAAS,EAAE,KAAK,IAAI;IACpB,YAAY,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACrD,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrD,YAAY,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChC,gBAAgB,MAAM,KAAK,CAAC;IAC5B,aAAa;IACb,SAAS,CAAC,CAAC;IACX;IACA,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;IAC3C,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE;IACxC,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAChC,KAAK;IACL,CAAC;IACD,SAAS,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;IACrD,IAAI,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;IAClC,IAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC9B,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE;IACpC,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACzC,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE;IACrC,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACzC,KAAK;IACL,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;AACD;IACA,MAAM,OAAO,IAAI,OAAO,MAAM,KAAK,WAAW;IAC9C,MAAM,MAAM;IACZ,MAAM,OAAO,UAAU,KAAK,WAAW;IACvC,UAAU,UAAU;IACpB,UAAU,MAAM,CAAC,CAAC;AAwGlB;IACA,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IAC5C,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;IACtB,IAAI,MAAM,WAAW,GAAG,EAAE,CAAC;IAC3B,IAAI,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,IAAI,CAAC,EAAE;IACf,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/B,oBAAoB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,aAAa;IACb,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;IACzC,oBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,oBAAoB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,iBAAiB;IACjB,aAAa;IACb,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT,aAAa;IACb,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;IACnC,QAAQ,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC;IAC5B,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACpC,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,iBAAiB,CAAC,YAAY,EAAE;IACzC,IAAI,OAAO,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;IACzF,CAAC;AAmND;IACA,SAAS,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzC,IAAI,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;IAC7B,QAAQ,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IAC7C,QAAQ,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL,CAAC;IACD,SAAS,gBAAgB,CAAC,KAAK,EAAE;IACjC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC;IAID,SAAS,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;IACnE,IAAI,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IACpD,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,aAAa,EAAE;IACxB;IACA,QAAQ,mBAAmB,CAAC,MAAM;IAClC,YAAY,MAAM,cAAc,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACtF;IACA;IACA;IACA,YAAY,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE;IACzC,gBAAgB,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IAChE,aAAa;IACb,iBAAiB;IACjB;IACA;IACA,gBAAgB,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,aAAa;IACb,YAAY,SAAS,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvC,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IACD,SAAS,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE;IACjD,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC9B,QAAQ,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChD;IACA;IACA,QAAQ,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;IACpB,KAAK;IACL,CAAC;IACD,SAAS,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE;IAClC,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;IACtC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,eAAe,EAAE,CAAC;IAC1B,QAAQ,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK;IACL,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,SAASC,MAAI,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAC5G,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;IAC/C,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG;IAC9B,QAAQ,QAAQ,EAAE,IAAI;IACtB,QAAQ,GAAG,EAAE,EAAE;IACf;IACA,QAAQ,KAAK;IACb,QAAQ,MAAM,EAAE,IAAI;IACpB,QAAQ,SAAS;IACjB,QAAQ,KAAK,EAAE,YAAY,EAAE;IAC7B;IACA,QAAQ,QAAQ,EAAE,EAAE;IACpB,QAAQ,UAAU,EAAE,EAAE;IACtB,QAAQ,aAAa,EAAE,EAAE;IACzB,QAAQ,aAAa,EAAE,EAAE;IACzB,QAAQ,YAAY,EAAE,EAAE;IACxB,QAAQ,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAClG;IACA,QAAQ,SAAS,EAAE,YAAY,EAAE;IACjC,QAAQ,KAAK;IACb,QAAQ,UAAU,EAAE,KAAK;IACzB,QAAQ,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC,EAAE,CAAC,IAAI;IACxD,KAAK,CAAC;IACN,IAAI,aAAa,IAAI,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,CAAC,GAAG,GAAG,QAAQ;IACrB,UAAU,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,KAAK;IACxE,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACtD,YAAY,IAAI,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE;IACnE,gBAAgB,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,gBAAgB,IAAI,KAAK;IACzB,oBAAoB,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,YAAY,OAAO,GAAG,CAAC;IACvB,SAAS,CAAC;IACV,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B;IACA,IAAI,EAAE,CAAC,QAAQ,GAAG,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpE,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE;IAE7B,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD;IACA,YAAY,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,YAAY,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb;IACA,YAAY,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,OAAO,CAAC,KAAK;IACzB,YAAY,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACjD,QAAQ,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1F,QAAQ,KAAK,EAAE,CAAC;IAChB,KAAK;IACL,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAiDD;IACA;IACA;IACA,MAAM,eAAe,CAAC;IACtB,IAAI,QAAQ,GAAG;IACf,QAAQ,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACnC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,KAAK;IACL,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE;IACxB,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;IACpC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,MAAM,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtF,QAAQ,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,OAAO,MAAM;IACrB,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtD,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC;IAC5B,gBAAgB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS,CAAC;IACV,KAAK;IACL,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;IAC9C,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;IACtC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;IACvC,SAAS;IACT,KAAK;IACL,CAAC;AACD;IACA,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;IACpC,IAAI,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChH,CAAC;IACD,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;IAClC,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAKD,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAC1C,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAKD,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAgBD,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE;IAC9F,IAAI,MAAM,SAAS,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IACvG,IAAI,IAAI,mBAAmB;IAC3B,QAAQ,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzC,IAAI,IAAI,oBAAoB;IAC5B,QAAQ,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1C,IAAI,YAAY,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACnF,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,OAAO,MAAM;IACjB,QAAQ,YAAY,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1F,QAAQ,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC;IACN,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,IAAI,IAAI;IACrB,QAAQ,YAAY,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE;IACA,QAAQ,YAAY,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC3B,IAAI,YAAY,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAKD,SAAS,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;IAClC,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;IAC/B,QAAQ,OAAO;IACf,IAAI,YAAY,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,SAAS,sBAAsB,CAAC,GAAG,EAAE;IACrC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,EAAE,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,CAAC,EAAE;IACzF,QAAQ,IAAI,GAAG,GAAG,gDAAgD,CAAC;IACnE,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,IAAI,GAAG,EAAE;IAC3E,YAAY,GAAG,IAAI,+DAA+D,CAAC;IACnF,SAAS;IACT,QAAQ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,KAAK;IACL,CAAC;IACD,SAAS,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;IAC1C,IAAI,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAC9C,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;IACtC,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,SAAS;IACT,KAAK;IACL,CAAC;IAYD,SAAS,8BAA8B,CAAC,SAAS,EAAE,KAAK,EAAE;IAC1D,IAAI,MAAM,aAAa,GAAG,qEAAqE,CAAC;IAChG,IAAI,IAAI;IACR,QAAQ,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9C,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IACnF,YAAY,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,OAAO,QAAQ,CAAC;IACxB,KAAK;IACL,IAAI,OAAO,GAAG,EAAE;IAChB,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAChC,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,EAAE;IAC3F,YAAY,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,SAAS;IACT,aAAa;IACb,YAAY,MAAM,GAAG,CAAC;IACtB,SAAS;IACT,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA,MAAM,kBAAkB,SAAS,eAAe,CAAC;IACjD,IAAI,WAAW,CAAC,OAAO,EAAE;IACzB,QAAQ,IAAI,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;IAChE,YAAY,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC7D,SAAS;IACT,QAAQ,KAAK,EAAE,CAAC;IAChB,KAAK;IACL,IAAI,QAAQ,GAAG;IACf,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM;IAC9B,YAAY,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC5D,SAAS,CAAC;IACV,KAAK;IACL,IAAI,cAAc,GAAG,GAAG;IACxB,IAAI,aAAa,GAAG,GAAG;IACvB;;ICtsEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAASC,MAAI,CAAC,IAAI,EAAE;IAC3B,IAAI,IAAI,CAAC,IAAI,EAAE;IACf,QAAQ,MAAM,KAAK,CAAC,4BAA4B,CAAC;IACjD,KAAK;AACL;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IACjD,QAAQ,MAAM,KAAK,CAAC,8DAA8D,CAAC;IACnF,KAAK;AACL;IACA;IACA,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;IACxB,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAC;IACnE,KAAK;AACL;IACA;IACA,IAAI,IAAI,OAAO,IAAI,CAAC,cAAc,IAAI,UAAU,EAAE;IAClD,QAAQ,MAAM,KAAK,CAAC,6CAA6C,CAAC;IAClE,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;IACzB;IACA,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;IAC7C,YAAY,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,EAAC;IAC/C,SAAS;IACT,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACzD,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE;IAChF,gBAAgB,MAAM,KAAK,CAAC,+BAA+B,GAAG,CAAC,GAAG,GAAG,CAAC;IACtE,aAAa;IACb,SAAS;IACT,KAAK;AACL;IACA;IACA,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;IAC/B,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAgB;IAC3D,QAAQ,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,UAAS;IAC3E,KAAK;AACL;IACA;IACA;IACA,IAAI,MAAM,GAAG,GAAG;IAChB,QAAQ,SAAS,EAAE,IAAI,CAAC,cAAc;IACtC,QAAQ,QAAQ,EAAE,IAAI,CAAC,QAAQ;IAC/B,QAAQ,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,GAAG,SAAS;IAC7F,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE;IAC/E,QAAQ,gBAAgB,EAAE,IAAI;IAC9B,MAAK;AACL;IACA,IAAI,OAAO,GAAG;IACd;;ICvFA,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;IAChC,IAAI,OAAO;IACX,QAAQ,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS;IACnD,KAAK,CAAC;IACN,CAAC;IACD;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE;IACvC,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE;IAC5B,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;IAC9C,YAAY,KAAK,GAAG,SAAS,CAAC;IAC9B,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAC3D,gBAAgB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;IACtD,oBAAoB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7D,iBAAiB;IACjB,gBAAgB,IAAI,SAAS,EAAE;IAC/B,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACzE,wBAAwB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,qBAAqB;IACrB,oBAAoB,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,SAAS,MAAM,CAAC,EAAE,EAAE;IACxB,QAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE;IAC/C,QAAQ,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7C,QAAQ,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;IACpC,YAAY,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACtC,SAAS;IACT,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,QAAQ,OAAO,MAAM;IACrB,YAAY,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,YAAY,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;IACxC,gBAAgB,IAAI,EAAE,CAAC;IACvB,gBAAgB,IAAI,GAAG,IAAI,CAAC;IAC5B,aAAa;IACb,SAAS,CAAC;IACV,KAAK;IACL,IAAI,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;IACD,SAAS,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE;IAC5C,IAAI,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,MAAM,YAAY,GAAG,MAAM;IAC/B,UAAU,CAAC,MAAM,CAAC;IAClB,UAAU,MAAM,CAAC;IACjB,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,IAAI,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,KAAK;IAC5C,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC;IAC1B,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC;IAC3B,QAAQ,MAAM,IAAI,GAAG,MAAM;IAC3B,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,OAAO;IACvB,aAAa;IACb,YAAY,OAAO,EAAE,CAAC;IACtB,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IAChE,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,aAAa;IACb,iBAAiB;IACjB,gBAAgB,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9D,aAAa;IACb,SAAS,CAAC;IACV,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK;IACzF,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9B,YAAY,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,YAAY,IAAI,MAAM,EAAE;IACxB,gBAAgB,IAAI,EAAE,CAAC;IACvB,aAAa;IACb,SAAS,EAAE,MAAM;IACjB,YAAY,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC,CAAC;IACZ,QAAQ,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,OAAO,SAAS,IAAI,GAAG;IAC/B,YAAY,OAAO,CAAC,aAAa,CAAC,CAAC;IACnC,YAAY,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC;IACV,KAAK,CAAC,CAAC;IACP;;ICpGO,SAASC,OAAK,CAAC,GAAG,EAAE,KAAK,EAAE;IAClC,CAAC,IAAI,GAAG,YAAY,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/D,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;AACvB;IACA,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE;IAC3B,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACb,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;IACjB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,GAAG,OAAO,IAAI,OAAO,CAAC;IACtB,GAAG,MAAM,IAAI,CAAC,KAAK,GAAG,EAAE;IACxB,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3B,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC7B,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACvE,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,gBAAgB,GAAG,WAAW,CAAC;IAC7D,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxE,GAAG,MAAM;IACT,GAAG,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC;IACxB,GAAG;IACH,EAAE;AACF;IACA,CAAC,OAAO;IACR,EAAE,IAAI,EAAE,IAAI;IACZ,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,IAAI,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC;IACzE,EAAE,CAAC;IACH;;;;;;;;;;;sDCqPQ,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;sCAFF,GAAS,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uFAEZ,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;0DAFF,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IANP,CAAA,MAAA,6BAAA,GAAA,CAAA,EAAA,MAAA,sBAAA,GAAe,iBAEpB,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;sCAHF,GAAS,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEACP,GAAe,CAAA,CAAA,CAAA,EAAA;4DAEpB,GAAK,CAAA,CAAA,CAAA,CAAA;;;;0DAHF,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAFf,GAAe,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IArPJ,SAAA,IAAI,CAAC,SAAS,EAAE,QAAQ,KAAK,UAAU,EAAA;;;KAGnD,OAAO,CAAC,IAAI,CAAC,0LAA0L,CAAA,CAAA;;IAChM,CAAA,OAAAC,MAAK,CACR,EAAA,SAAS,EACT,QAAQ,EACR,UAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;aAeC,WAAW,GAAA;WACV,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA,CAAA;;SAClD,QAAQ,GAAI,YAAY,GAAA,CAAI,CAAC;OAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAA;OAAI,GAAE,CAAA;;;IAGjF,CAAA,MAAA,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAA,CAAA;;IACnC,CAAA,IAAA,WAAW,GAAG,EAAC,CAAA;;IACf,CAAA,IAAA,UAAU,IAAI,CAAC,EAAA;IACf,EAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAA,CAAA;IAC5C,EAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAA,CAAA;;;IAGpC,CAAA,OAAA,EAAA,QAAQ,EAAE,WAAW,EAAA,CAAA;;;UAMpB,GAAG,GAAG,QAAQ,CACvB,IAAI;IAEK,SAAA,KAAK,CAAC,GAAG,EAAA;IACd,CAAA,GAAG,CAAC,WAAW,EAAA,CAAA,CAAA;;WAET,MAAM,GAAA,MAAA;IACR,EAAA,GAAG,CAAC,WAAW,EAAA,CAAA,CAAA;;;IAEnB,CAAA,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAA,CAAA;;qBAEnC,IAAI,GAAA;IAChB,EAAA,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAA,CAAA;;;;UAQrDC,UAAQ,GAAG,OAAO,CAC3B,GAAG,EACF,IAAI,IAAK,IAAI,CAAC,QAAA,CAAA,CAAA;UAMN,WAAW,GAAG,OAAO,CAC9B,GAAG,EACF,IAAI,IAAK,IAAI,CAAC,WAAA,CAAA,CAAA;UAQN,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAA,CAAA;;IAQlB,eAAA,IAAI,CAAC,QAAQ,EAAA;UAC1B,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,IAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAA,KAAM,CAAC,EAAA;IACxF,EAAA,MAAA,KAAK,CAAC,4BAA4B,CAAA,CAAA;;;;WAItC,IAAI,EAAA,CAAA;;;IAGV,CAAA,OAAO,CAAC,YAAY;;IAAK,GAAA,GAAA,OAAO,CAAC,KAAK;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;;MAAG,SAAS;;;IAC5I,CAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAA,CAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,QAAA,CAAA;;;mBAQ9C,GAAG,GAAA;;WAEf,IAAI,EAAA,CAAA;;KAEV,MAAM,CAAC,OAAO,CAAC,IAAI,EAAA,CAAA;;;IASD,eAAA,OAAO,CAAC,QAAQ,EAAA;UAC7B,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,IAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAA,KAAM,CAAC,EAAA;IACxF,EAAA,MAAA,KAAK,CAAC,4BAA4B,CAAA,CAAA;;;;WAItC,IAAI,EAAA,CAAA;;IAEJ,CAAA,MAAA,IAAI,GAAI,CAAA,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAK,IAAA,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,QAAA,CAAA;;;YAE5C,QAAQ,GAAA,EAAA,GACP,OAAO,CAAC,KAAA,EAAA,CAAA;IAER,EAAA,OAAA,QAAQ,CAAC,6BAA6B,CAAA,CAAA;IACtC,EAAA,OAAA,QAAQ,CAAC,6BAA6B,CAAA,CAAA;MAC7C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAA,CAAA;aAElD,CAAC,EAAA;;MAEJ,OAAO,CAAC,IAAI,CAAC,0KAA0K,CAAA,CAAA;;;;IAI3L,CAAA,MAAM,CAAC,aAAa,CAAK,IAAA,KAAK,CAAC,YAAY,CAAA,CAAA,CAAA;;;aAsB/B,IAAI,CAAC,IAAI,EAAE,IAAI,EAAA;KAC3B,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA,CAAA;;;UAGf,IAAI,IAAA,CAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAA,IAAM,GAAG,EAAA;IACrD,EAAA,MAAA,KAAK,CAAC,8CAA8C,CAAA,CAAA;;;KAG9D,UAAU,CAAC,IAAI,EAAE,IAAI,CAAA,CAAA;;;IAGjB,EAAA,MAAM,CAAC,OAAO,EAAA;OACV,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA,CAAA;OAC1B,UAAU,CAAC,IAAI,EAAE,OAAO,CAAA,CAAA;;;;;IAUpB,SAAA,aAAa,CAAC,KAAK,EAAA;;SAE3B,KAAK,EAAA;MACL,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,2BAA2B,CAAA,CAAA;;;IAIpF,EAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAA,CAAA;;;;;aAKnB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAA;SACtB,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA,CAAA;;;IAG5C,CAAA,IAAA,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,EAAA;;MAE7B,IAAI,GAAG,GAAG,GAAG,IAAA,CAAA;IAEP,EAAA,MAAA,IAAA,CAAA,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAA;YACnD,KAAK,CAAC,sCAAsC,GAAG,IAAI,CAAA,CAAA;;;IAG7D,CAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAA,CAAA;;IAC9B,CAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAG,KAAK,IAAA;;IAEjC,EAAA,KAAK,CAAC,cAAc,EAAA,CAAA;;IACf,EAAA,IAAA,CAAA,IAAI,CAAC,QAAQ,EAAA;IACd,GAAA,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAA,CAAA,CAAA;;;;;;IAMpE,SAAA,QAAQ,CAAC,GAAG,EAAA;SACb,GAAG,IAAA,OAAW,GAAG,IAAI,QAAQ,EAAA;IAEzB,EAAA,OAAA,EAAA,IAAI,EAAE,GAAA,EAAA,CAAA;;aAIH,GAAG,IAAA,EAAA,CAAA;;;;;;;;;;IAUT,SAAA,yBAAyB,CAAC,IAAI,EAAA;;IAEnC,CAAA,OAAO,CAAC,YAAY;;IAAK,GAAA,GAAA,OAAO,CAAC,KAAK;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;;MAAG,SAAS;;;;IAE5I,CAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAA,CAAA;;;;;;WAsChB,MAAM,GAAA,EAAA,EAAA,GAAA,OAAA,CAAA;IAKN,CAAA,IAAA,EAAA,MAAM,GAAG,EAAC,EAAA,GAAA,OAAA,CAAA;IAMV,CAAA,IAAA,EAAA,kBAAkB,GAAG,KAAA,EAAA,GAAA,OAAA,CAAA;;;;;WAK1B,SAAS,CAAA;;;;;;;MAOX,WAAW,CAAC,IAAI,EAAE,SAAS,EAAA;IAClB,GAAA,IAAA,CAAA,SAAS,IAAY,OAAA,SAAS,IAAI,UAAU,KAAY,OAAA,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC,gBAAgB,KAAK,IAAI,CAAA,EAAA;IAC/G,IAAA,MAAA,KAAK,CAAC,0BAA0B,CAAA,CAAA;;;;IAIrC,GAAA,IAAA,CAAA,IAAI,IACG,OAAA,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAK,IAAA,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA,IAAK,GAAG,CAAA,IAAA,OACvF,IAAI,IAAI,QAAQ,IAAM,EAAA,IAAI,YAAY,MAAM,CAAA,EAAA;IAE9C,IAAA,MAAA,KAAK,CAAC,oEAAoE,CAAA,CAAA;;;IAG7E,GAAA,MAAA,EAAA,OAAO,EAAE,IAAI,EAAI,GAAAF,OAAK,CAAC,IAAI,CAAA,CAAA;OAElC,IAAI,CAAC,IAAI,GAAG,IAAA,CAAA;;;IAGD,GAAA,IAAA,OAAA,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC,gBAAgB,KAAK,IAAI,EAAA;IACnE,IAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAA,CAAA;IAC3B,IAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,IAAA,EAAA,CAAA;IACtC,IAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAA,CAAA;IAC1B,IAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAA,EAAA,CAAA;;;IAI5B,IAAA,IAAI,CAAC,SAAS,GAAA,MAAS,OAAO,CAAC,OAAO,CAAC,SAAS,CAAA,CAAA;;IAChD,IAAA,IAAI,CAAC,UAAU,GAAA,EAAA,CAAA;IACf,IAAA,IAAI,CAAC,KAAK,GAAA,EAAA,CAAA;;;OAGd,IAAI,CAAC,QAAQ,GAAG,OAAA,CAAA;OAChB,IAAI,CAAC,KAAK,GAAG,IAAA,CAAA;;;;;;;;;;;IAWjB,EAAA,KAAK,CAAC,IAAI,EAAA;;;WAGF,MAAM,EAAA;IACK,IAAA,IAAA,OAAA,MAAM,IAAI,QAAQ,EAAA;aACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA,EAAA;UACtB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAA,IAAK,GAAE,CAAA;;iBAGhC,IAAA,CAAA;;IAGN,KAAA,MAAA,IAAA,MAAM,YAAY,MAAM,EAAA;IACvB,KAAA,MAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA,CAAA;;aAC3B,KAAK,IAAI,KAAK,CAAC,CAAC,CAAA,EAAA;UAChB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA,CAAE,MAAM,CAAA,IAAK,GAAE,CAAA;;iBAGlC,IAAA,CAAA;;;;;;IAMb,GAAA,MAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAA,CAAA;;IACnC,GAAA,IAAA,OAAO,KAAK,IAAI,EAAA;eACT,IAAA,CAAA;;;;WAIP,IAAI,CAAC,KAAK,KAAK,KAAK,EAAA;eACb,OAAA,CAAA;;;aAGL,GAAG,GAAA,EAAA,CAAA;IACL,GAAA,IAAA,CAAC,GAAG,CAAA,CAAA;;IACD,GAAA,OAAA,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAA;;;IAGpB,KAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAK,CAAA,GAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAK,IAAA,EAAE,KAAK,IAAA,CAAA;gBAE9D,CAAC,EAAA;IACJ,KAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAA,CAAA;;;QAEzB,CAAC,EAAA,CAAA;;;cAEE,GAAA,CAAA;;;;;;;;;;;;;;;;;;;IAoBL,EAAA,MAAA,eAAe,CAAC,MAAM,EAAA;gBACf,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAA,EAAA;IAC7B,IAAA,IAAA,CAAA,MAAA,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAA,EAAA;gBAC1B,KAAA,CAAA;;;;cAIR,IAAA,CAAA;;;;;WAKT,UAAU,GAAA,EAAA,CAAA;;IACZ,CAAA,IAAA,MAAM,YAAY,GAAG,EAAA;;IAErB,EAAA,MAAM,CAAC,OAAO,CAAE,CAAA,KAAK,EAAE,IAAI,KAAA;IACvB,GAAA,UAAU,CAAC,IAAI,CAAA,IAAK,SAAS,CAAC,IAAI,EAAE,KAAK,CAAA,CAAA,CAAA;;;;IAK7C,EAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA,OAAO,CAAE,IAAI,IAAA;OAC7B,UAAU,CAAC,IAAI,CAAK,IAAA,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAA,CAAA,CAAA,CAAA;;;;;IAKnD,CAAA,IAAA,SAAS,GAAG,IAAA,CAAA;;IACZ,CAAA,IAAA,eAAe,GAAG,IAAA,CAAA;SAClB,KAAK,GAAA,EAAA,CAAA;;;IAGH,CAAA,MAAA,QAAQ,GAAG,qBAAqB,EAAA,CAAA;;;oBAGvB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAA;;YAElC,IAAI,EAAA,CAAA;;MACV,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA,CAAA;;;;IAIrB,CAAA,IAAA,mBAAmB,GAAG,IAAA,CAAA;;IAItB,CAAA,IAAA,eAAe,GAAG,IAAA,CAAA;;SAClB,kBAAkB,EAAA;IAClB,EAAA,eAAe,GAAI,KAAK,IAAA;;;;IAIhB,GAAA,IAAA,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,2BAA2B,IAAI,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAA,EAAA;QAClG,mBAAmB,GAAG,KAAK,CAAC,KAAA,CAAA;;IAG5B,IAAA,mBAAmB,GAAG,IAAA,CAAA;;;;;IAI9B,EAAA,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,CAAA,CAAA;;MAEnD,WAAW,CAAA,MAAA;IACP,GAAA,aAAa,CAAC,mBAAmB,CAAA,CAAA;;;;;IAKrC,CAAA,IAAA,OAAO,GAAG,IAAA,CAAA;;;IAGV,CAAA,IAAA,YAAY,GAAG,IAAA,CAAA;;;;;IAKb,CAAA,MAAA,cAAc,GAAG,GAAG,CAAC,SAAS,OAAQ,MAAM,IAAA;IAC9C,EAAA,OAAO,GAAG,MAAA,CAAA;;;IAGN,EAAA,IAAA,CAAC,GAAG,CAAA,CAAA;;aACD,CAAC,GAAG,UAAU,CAAC,MAAM,EAAA;aAClB,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA,CAAA;;YAC5C,KAAK,EAAA;QACN,CAAC,EAAA,CAAA;;;;aAIC,MAAM,GAAA;IACR,IAAA,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,IAAA,QAAQ,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ;IAChC,IAAA,MAAM,EAAG,KAAK,IAAW,OAAA,KAAK,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;UAAI,KAAK;UAAG,IAAA;;;;IAI3E,GAAA,IAAA,CAAA,MAAA,UAAU,CAAC,CAAC,CAAE,CAAA,eAAe,CAAC,MAAM,CAAA,EAAA;;IAE5C,IAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAA,CAAA,CAAA;;IACZ,IAAA,YAAY,GAAG,IAAA,CAAA;;;QAEf,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,CAAA,CAAA;;;;;;;IAM/C,GAAA,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,CAAA,CAAA,CAAA;;;IAGnD,GAAA,MAAA,GAAG,GAAG,UAAU,CAAC,CAAC,EAAE,SAAA,CAAA;;;IAEtB,GAAA,IAAA,YAAY,IAAI,GAAG,EAAA;IACf,IAAA,IAAA,GAAG,CAAC,OAAO,EAAA;yBACX,SAAS,GAAG,GAAG,CAAC,OAAA,CAAA,CAAA;IAChB,KAAA,YAAY,GAAG,GAAA,CAAA;yBACf,eAAe,GAAG,GAAG,CAAC,aAAA,CAAA,CAAA;yBACtB,KAAK,GAAA,EAAA,CAAA,CAAA;;;;IAIL,KAAA,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,EAAA;UACzC,SAAS;UACpB,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,MAAA,MAAM,EAAE,eAAA;;;IAIZ,KAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAA,CAAA,CAAA;IACZ,KAAA,YAAY,GAAG,IAAA,CAAA;;;;IAIb,IAAA,MAAA,MAAM,SAAS,GAAG,EAAA,CAAA;;;IAGpB,IAAA,IAAA,MAAM,IAAI,OAAO,EAAA;;;;;;IAMrB,IAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAI,MAAM,IAAI,MAAM,CAAC,OAAO,IAAK,MAAA,CAAA,CAAA;;IAC1C,IAAA,YAAY,GAAG,GAAA,CAAA;;;;;WAKf,KAAK,IAAA,OAAW,KAAK,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAA,CAAE,MAAM,EAAA;IAC9D,IAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAA,CAAA,CAAA;;IAGlB,IAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAA,CAAA,CAAA;;;;IAItB,GAAA,YAAA,CAAA,CAAA,EAAA,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,KAAA,CAAA,CAAA;;;;IAItB,GAAA,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,EAAA;QACzC,SAAS;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,IAAA,MAAM,EAAE,eAAA;WACR,IAAI,CAAA,MAAA;QACJ,MAAM,CAAC,GAAG,CAAC,eAAe,CAAA,CAAA;;;;;;;IAMlC,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAA,CAAA,CAAA;;IACZ,EAAA,YAAY,GAAG,IAAA,CAAA;MACf,MAAM,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;;KAGxB,SAAS,CAAA,MAAA;MACL,cAAc,EAAA,CAAA;IACd,EAAA,eAAe,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAtI1E,OAAO,CAAC,iBAAiB,GAAG,kBAAkB,GAAG,QAAQ,GAAG,MAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCldpE,UAAqB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACrB,UAAmC,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OAEnC,UAA2B,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OAC3B,UAEG,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;OADC,UAAsB,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICN1B;IACA,MAAM,KAAK,GAAG,GAAE;AAChB;IACA;IACA,IAAIE,WAAQ;AACZ;IACA;IACA,SAAS,WAAW,CAAC,EAAE,EAAE;IACzB,IAAI,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAACA,UAAQ,EAAC;IACrD,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,eAAe,EAAC;IACpD,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,eAAe,EAAC;IAC7D,CAAC;AACD;IACA,SAAS,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE;IACjD,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;IAClD,QAAQ,IAAI,CAAC,GAAG,EAAE;IAClB,YAAY,MAAM;IAClB,SAAS;IACT;IACA,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAC;AACrC;IACA;IACA,QAAQ,IAAI,SAAS,EAAE;IACvB,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAC;IACtC,SAAS;IACT,KAAK,EAAC;IACN,CAAC;AACD;IACA;IACA,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK;IACzB;IACA,IAAIA,UAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,WAAW,GAAG,EAAE,EAAC;AAClF;IACA;IACA,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAC;IAC1B,CAAC;;;;;;;;;;;;;;;;;;;;;OCLK,UAAqE,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAFrE,UAA8D,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAD3D,EAAA,kBAAA,GAAS,QAAK,UAAU,EAAA,OAAAC,iBAAA,CAAA;IAEnB,EAAA,kBAAA,GAAS,QAAK,UAAU,EAAA,OAAAC,mBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OATtC,UAqBQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;OApBN,UAAmF,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;;OACnF,UAAmB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAiBK,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;OAhBN,UAAqD,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACrD,UAA8D,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAC9D,UAA2D,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;;;OAWxD,UAAmE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACnE,UAAqD,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACrD,UAAoD,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;4DAAlC,GAAiB,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAjCjC,iBAAiB,GAAA,YAAA;IACb,EAAA,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CACtE,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAE,MAAM,EAAA,CAAA;;MAIf,IAAI,CAAA,MAAQ,IAAI,CAAC,GAAG,CAAA,CAAA,CAAA;;MACvB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;;;;;;;;;IAQmC,CAAA,MAAA,aAAA,GAAA,MAAA,IAAI,CAAC,GAAG,CAAA,CAAA;IAGxD,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,OAAO,CAAA,CAAA;IACZ,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,YAAY,CAAA,CAAA;IACjB,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,UAAU,CAAA,CAAA;IAEV,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,UAAU,CAAA,CAAA;IAEf,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,mBAAmB,CAAA,CAAA;IAO1B,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,kBAAkB,CAAA,CAAA;IACvB,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,OAAO,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICwCd,CAAA,IAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;8BAuBvB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA;;;;;8BAChB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA;;;;;8BACrB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;;8BACpB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;;iBAzBd,eAChB,CAAA,CAAA;;;;;;;;;;;;;;;0BAgB8B,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;kBAK/B,SAAO,CAAA,CAAA;;;;kBACP,aAAW,CAAA,CAAA;;;;kBACX,UAAQ,CAAA,CAAA;;;;kBACR,SAAO,CAAA,CAAA;;;8DA3Bc,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHlC,UAgCM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OA7BJ,UAA0D,CAAA,IAAA,EAAA,GAAA,CAAA,CAAA;;OAC1D,UAA0C,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAC1C,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAlBH,UAiBM,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;OAhBJ,UAIM,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA;OADL,UAAiW,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;OAGnW,UAIM,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA;OADL,UAAiW,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;OAGnW,UAIM,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA;OADL,UAAiW,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;OAGnW,UAAuC,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;OAG3C,UAMS,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;OALP,UAAwB,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;OACxB,UAAmC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;OACnC,UAAqC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;OACrC,UAAmC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;OACnC,UAAkC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;;sFA3BV,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA;;;;IACT,GAAA,IAAA,KAAA,YAAA,CAAA,IAAA,QAAA,MAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;yDAkBJ,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;qEAKvB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;qEAChB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;qEACrB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;qEACpB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IA/B7B,CAAA,IAAA,QAAA,YAAA,GAAI,QAAK,SAAS,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;OADzB,UAoCK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;IAnCE,GAAA,aAAA,GAAI,QAAK,SAAS,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAvEZ,IAAI,EAAA,GAAA,OAAA,CAAA;WACJ,OAAO,EAAA,GAAA,OAAA,CAAA;IACd,CAAA,IAAA,IAAI,GAAG,EAAE,CAAA;SACT,MAAM,CAAA;;KAGV,OAAO,CAAA,YAAA;;UAED,OAAO,EAAA;IACH,GAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC5G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,IAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,IAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACF,IAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,IAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;IAchB,CAAA,IAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAA;IAC9B,EAAA,IAAI,GAAG,kBAAkB,CAAA;IAChB,EAAA,MAAA,IAAA,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,EAAA;IACvC,EAAA,IAAI,GAAG,iBAAiB,CAAA;;IAExB,EAAA,IAAI,GAAG,kBAAkB,CAAA;;;;IAMvB,CAAA,IAAA,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;;IAExB,CAAA,MAAA,IAAI,IAAI,GAAG,EAAE,GAAG,KACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,CAAA;;;IAG7C,CAAA,MAAA,OAAO,GAAI,IAAI,IAAA;;UAEf,IAAI,EAAA;OACN,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAA,CAAA,EAAK,IAAI,CAAA,CAAE,EAAE,EAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OACtD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAA,CAAA,EAAK,IAAI,CAAA,CAAE,EAAE,EAAE,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAEpD,GAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAA;IAC7B,GAAA,IAAI,CAAC,YAAY,CAAA;IACjB,GAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAA;;;;;SAKzB,KAAK,GAAA,EAAA,CAAA;;IAEA,CAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAA,EAAA;MACtB,UAAU;;QACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA,CAAA,CAAA;IAEf,IAAA,WAAW,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAA,CAAA;;OACxC,KAAK,EAAA,IAAM,QAAQ,GAAG,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;IAeL,GAAA,KAAK,CAAC,CAAC,CAAA,GAAA,OAAA,CAAA;;;;;;;IAKP,GAAA,KAAK,CAAC,CAAC,CAAA,GAAA,OAAA,CAAA;;;;;;;IAKP,GAAA,KAAK,CAAC,CAAC,CAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCvFhC,UAmBK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAlBJ,UAAyB,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;OACzB,UAAiE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACjE,UAAgE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChE,UAAgE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChE,UAA+D,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAC/D,UAAoE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACpE,UAAoE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACpE,UAAqE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACrE,UAAkE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAClE,UAAgE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChE,UAG6B,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAC7B,UAG6B,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAvBlB,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;WACX,OAAO,GAAA,EAAA,EAAA,GAAA,OAAA,CAAA;;;;;;;;IAMW,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,OAAO,CAAA,CAAA;;;;IAChB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;IACf,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;IACf,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,KAAK,CAAA,CAAA;;;;IACd,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,UAAU,CAAA,CAAA;;;;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,UAAU,CAAA,CAAA;;;;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,WAAW,CAAA,CAAA;;;;IACpB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,QAAQ,CAAA,CAAA;;;;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;sBAE3C,OAAO,GAAA,CAAI,UAAU,EAAE,UAAU,CAAA,CAAA,CAAA;IACjC,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;sBAGf,OAAO,GAAA,CAAI,UAAU,EAAE,UAAU,CAAA,CAAA,CAAA;IACjC,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEChBJ,GAAM,CAAA,CAAA,CAAA,GAAA,WAAA,GAAA,gBAAA,CAAA,CAAA,CAAA;oDAAsC,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;OAA9D,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;uGAFQ,GAAM,CAAA,CAAA,CAAA,GAAA,WAAA,GAAA,gBAAA,CAAA,CAAA,EAAA;;;;;qDAAsC,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WALlD,KAAK,EAAA,GAAA,OAAA,CAAA;WACL,MAAM,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CCuB0C,GAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;uFAAS,GAAQ,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,CAAA;;;;;;;OAArF,UAEQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;OADP,UAAmB,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;uDADF,GAAa,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;IAAY,OAAA,IAAA,WAAA,cAAA,GAAQ,mBAAR,GAAQ,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAAS,GAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;;;+HAAS,GAAQ,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAZzE,CAAA,IAAA,EAAA,QAAQ,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACb,CAAA,IAAA,EAAA,QAAQ,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACb,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,UAAU,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACf,CAAA,IAAA,EAAA,QAAQ,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;cAEf,aAAa,GAAA;IACrB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCbiC,MAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHD,UAIK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WARO,MAAM,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOsD,UAEvE,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG+D,KAE/D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAfD,UAuCK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OArBJ,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAlBJ,UAAwC,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACxC,UAgBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAfJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAoD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA1B5C,MAAM,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BCGA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;uEADA,GAAI,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA;;;;;;;OAA1B,UAGK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAFJ,UAAyB,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;OACzB,UAA+B,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;qEADd,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;2GADA,GAAI,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAJd,IAAI,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICFhB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;IAC5B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;IACzC,IAAI,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;;ICX5D,MAAME,gBAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC7E,MAAMC,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE;IACA,MAAMC,QAAM,GAAG,GAAG,IAAI;IACtB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IACnD,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,QAAQ,KAAK;IACnE,IAAI,IAAIF,gBAAc,IAAI,IAAI,YAAY,IAAI,EAAE;IAChD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,SAAS;IACT,KAAK;IACL,SAAS,IAAIC,uBAAqB;IAClC,SAAS,IAAI,YAAY,WAAW,IAAIC,QAAM,CAAC,IAAI,CAAC,CAAC,EAAE;IACvD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClE,SAAS;IACT,KAAK;IACL;IACA,IAAI,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;IAC/C,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,GAAG,YAAY;IACpC,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC;IACN,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;;ICvCD,MAAM,KAAK,GAAG,kEAAkE,CAAC;IACjF;IACA,MAAMC,QAAM,GAAG,OAAO,UAAU,KAAK,WAAW,GAAG,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvC,IAAIA,QAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAiBM,MAAMC,QAAM,GAAG,CAAC,MAAM,KAAK;IAClC,IAAI,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACnH,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC3C,QAAQ,YAAY,EAAE,CAAC;IACvB,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC/C,YAAY,YAAY,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL,IAAI,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3F,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;IACjC,QAAQ,QAAQ,GAAGD,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IACvD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,EAAE,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC9D,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC7D,KAAK;IACL,IAAI,OAAO,WAAW,CAAC;IACvB,CAAC;;ICvCD,MAAMF,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,UAAU,KAAK;IACpD,IAAI,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;IAC3C,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC;IACtD,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;IACtB,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IAC5E,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,UAAU,EAAE;IACrB,QAAQ,OAAO,YAAY,CAAC;IAC5B,KAAK;IACL,IAAI,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC;IACnC,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,YAAY,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,SAAS,CAAC;IACV,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACjD,IAAI,IAAIA,uBAAqB,EAAE;IAC/B,QAAQ,MAAM,OAAO,GAAGG,QAAM,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,OAAO,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtC,KAAK;IACL,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACxC,IAAI,QAAQ,UAAU;IACtB,QAAQ,KAAK,MAAM;IACnB,YAAY,OAAO,IAAI,YAAY,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACzE,QAAQ,KAAK,aAAa,CAAC;IAC3B,QAAQ;IACR,YAAY,OAAO,IAAI,CAAC;IACxB,KAAK;IACL,CAAC;;IC7CD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK;IAC7C;IACA,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,IAAI,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;IACnC;IACA,QAAQ,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,IAAI;IACrD,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;IAC9C,YAAY,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE;IACpC,gBAAgB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,aAAa;IACb,SAAS,CAAC,CAAC;IACX,KAAK,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,UAAU,KAAK;IACtD,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACpD,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1E,QAAQ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,QAAQ,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE;IAC5C,YAAY,MAAM;IAClB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IACK,MAAMC,UAAQ,GAAG,CAAC;;IC9BzB;IACA;IACA;IACA;IACA;AACA;IACO,SAAS,OAAO,CAAC,GAAG,EAAE;IAC7B,EAAE,IAAI,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,KAAK,CAAC,GAAG,EAAE;IACpB,EAAE,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;IACrC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,EAAE;IACpB,OAAO,CAAC,SAAS,CAAC,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IACxD,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE;IACpE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC5C,EAAE,SAAS,EAAE,GAAG;IAChB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9B,GAAG;AACH;IACA,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrB,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,GAAG;IACrB,OAAO,CAAC,SAAS,CAAC,cAAc;IAChC,OAAO,CAAC,SAAS,CAAC,kBAAkB;IACpC,OAAO,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC3D,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC/C,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC;AAC9B;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,EAAE,CAAC;IACT,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;IACnC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM;IACZ,KAAK;IACL,GAAG;AACH;IACA;IACA;IACA,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAC9B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,CAAC;IACxC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAC/C;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,GAAG;AACH;IACA,EAAE,IAAI,SAAS,EAAE;IACjB,IAAI,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;IAC1D,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AACxD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,CAAC;IAC7C,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,CAAC;IAChD,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;;ICxKM,MAAM,cAAc,GAAG,CAAC,MAAM;IACrC,IAAI,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,SAAS,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC5C,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;IACzC,KAAK;IACL,CAAC,GAAG;;ICTG,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE;IACnC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;IACnC,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IACD;IACA,MAAM,kBAAkB,GAAG,UAAU,CAAC;IACtC,MAAM,oBAAoB,GAAG,YAAY,CAAC;IACnC,SAAS,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE;IACjD,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;IAC9B,QAAQ,GAAG,CAAC,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAACC,cAAU,CAAC,CAAC;IAC/D,QAAQ,GAAG,CAAC,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACnE,KAAK;IACL,SAAS;IACT,QAAQ,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACvD,QAAQ,GAAG,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IAC3D,KAAK;IACL,CAAC;IACD;IACA,MAAM,eAAe,GAAG,IAAI,CAAC;IAC7B;IACO,SAAS,UAAU,CAAC,GAAG,EAAE;IAChC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK;IACL;IACA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC;IACrE,CAAC;IACD,SAAS,UAAU,CAAC,GAAG,EAAE;IACzB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAChD,QAAQ,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,QAAQ,IAAI,CAAC,GAAG,IAAI,EAAE;IACtB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,KAAK,EAAE;IAC5B,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE;IAC5C,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa;IACb,YAAY,CAAC,EAAE,CAAC;IAChB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB;;IChDA,MAAM,cAAc,SAAS,KAAK,CAAC;IACnC,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC9C,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACvC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IACrC,KAAK;IACL,CAAC;IACM,MAAM,SAAS,SAAS,OAAO,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC1C,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,IAAI,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE;IACpE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,SAGS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACnC,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,KAAK;IACL;;ICnHA;IAEA,MAAM,QAAQ,GAAG,kEAAkE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC;IACrH,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAC1B;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAASC,QAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;IACrB,IAAI,GAAG;IACP,QAAQ,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IACnD,QAAQ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;IACvC,KAAK,QAAQ,GAAG,GAAG,CAAC,EAAE;IACtB,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC;IAeD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,KAAK,GAAG;IACxB,IAAI,MAAM,GAAG,GAAGA,QAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,KAAK,IAAI;IACpB,QAAQ,OAAO,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC;IACpC,IAAI,OAAO,GAAG,GAAG,GAAG,GAAGA,QAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD;IACA;IACA;IACA,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;IACtB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;;ICjDxB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;IACvB,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,CAAC,MAAM;IAC1B,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC3B,YAAY,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,SAAS;IACT,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,EAAE,EAAE;IAC3B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAClD,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,QAAQ,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf;;ICjCA;IACA,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI;IACJ,IAAI,KAAK,GAAG,OAAO,cAAc,KAAK,WAAW;IACjD,QAAQ,iBAAiB,IAAI,IAAI,cAAc,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,EAAE;IACZ;IACA;IACA,CAAC;IACM,MAAM,OAAO,GAAG,KAAK;;ICV5B;IAGO,SAAS,GAAG,CAAC,IAAI,EAAE;IAC1B,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC;IACA,IAAI,IAAI;IACR,QAAQ,IAAI,WAAW,KAAK,OAAO,cAAc,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE;IAC5E,YAAY,OAAO,IAAI,cAAc,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL,IAAI,OAAO,CAAC,EAAE,GAAG;IACjB,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAID,cAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9F,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,GAAG;IACrB,KAAK;IACL;;ICVA,SAAS,KAAK,GAAG,GAAG;IACpB,MAAM,OAAO,GAAG,CAAC,YAAY;IAC7B,IAAI,MAAM,GAAG,GAAG,IAAIE,GAAc,CAAC;IACnC,QAAQ,OAAO,EAAE,KAAK;IACtB,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC;IACpC,CAAC,GAAG,CAAC;IACE,MAAM,OAAO,SAAS,SAAS,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,MAAM,KAAK,GAAG,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACzD,YAAY,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,EAAE;IACvB,gBAAgB,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5C,aAAa;IACb,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,CAAC,OAAO,QAAQ,KAAK,WAAW;IAChD,oBAAoB,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;IACvD,oBAAoB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACvC,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IAC5C,SAAS;IACT;IACA;IACA;IACA,QAAQ,MAAM,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;IACrD,QAAQ,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC;IACtD,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,SAAS,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC,YAAY,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC;IACV,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC5C,YAAY,IAAI,KAAK,GAAG,CAAC,CAAC;IAC1B,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;IAC9B,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY;IACtD,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChC,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY;IAC/C,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IAC5B,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI;IACnC;IACA,YAAY,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;IACzE,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B,aAAa;IACb;IACA,YAAY,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE;IACzC,gBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,CAAC;IAChF,gBAAgB,OAAO,KAAK,CAAC;IAC7B,aAAa;IACb;IACA,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS,CAAC;IACV;IACA,QAAQ,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtE;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC1C;IACA,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC9C,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IAC5C,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,aAEa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS,CAAC;IACV,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,aAAa;IACb;IACA;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,aAAa,CAAC,OAAO,EAAE,IAAI,IAAI;IACvC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;IACrC,gBAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,aAAa,CAAC,CAAC;IACf,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3D,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACnD,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;IAChD,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAClE,iBAAiB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACvE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE;IACvB,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;IACtB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC,YAAY,MAAM,EAAE,MAAM;IAC1B,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC,CAAC;IACX,QAAQ,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9B,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACnC,QAAQ,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IAC3B,KAAK;IACL,CAAC;IACM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IAC3C,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAC/D,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACtI,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAIA,GAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,QAAQ,IAAI;IACZ,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,YAAY,IAAI;IAChB,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC5C,oBAAoB,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACjF,oBAAoB,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC1D,wBAAwB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACtE,4BAA4B,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,yBAAyB;IACzB,qBAAqB;IACrB,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;IACxC,gBAAgB,IAAI;IACpB,oBAAoB,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IACrF,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE,GAAG;IAC7B,aAAa;IACb,YAAY,IAAI;IAChB,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB;IACA,YAAY,IAAI,iBAAiB,IAAI,GAAG,EAAE;IAC1C,gBAAgB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IAChE,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAC1C,gBAAgB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IACvD,aAAa;IACb,YAAY,GAAG,CAAC,kBAAkB,GAAG,MAAM;IAC3C,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,UAAU;IACxC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE;IAC/D,oBAAoB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClC,iBAAiB;IACjB,qBAAqB;IACrB;IACA;IACA,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM;IAC5C,wBAAwB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtF,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAC1B,iBAAiB;IACjB,aAAa,CAAC;IACd,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB;IACA;IACA;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACjD,YAAY,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,SAAS,EAAE;IACvB,QAAQ,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE;IAClE,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAC5C,QAAQ,IAAI,SAAS,EAAE;IACvB,YAAY,IAAI;IAChB,gBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACjC,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;IAC3C,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;IAC3B,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,YAAY,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,KAAK;IACL,CAAC;IACD,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;IACtB;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IACrC;IACA,IAAI,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;IAC3C;IACA,QAAQ,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC/C,KAAK;IACL,SAAS,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACrD,QAAQ,MAAM,gBAAgB,GAAG,YAAY,IAAIF,cAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IACpF,QAAQ,gBAAgB,CAAC,gBAAgB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IACjE,KAAK;IACL,CAAC;IACD,SAAS,aAAa,GAAG;IACzB,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE;IACpC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IAChD,YAAY,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL;;ICjZO,MAAM,QAAQ,GAAG,CAAC,MAAM;IAC/B,IAAI,MAAM,kBAAkB,GAAG,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC;IACtG,IAAI,IAAI,kBAAkB,EAAE;IAC5B,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,EAAE,YAAY,KAAK,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,KAAK;IACL,CAAC,GAAG,CAAC;IACE,MAAMG,WAAS,GAAGH,cAAU,CAAC,SAAS,IAAIA,cAAU,CAAC,YAAY,CAAC;IAClE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IACnC,MAAM,iBAAiB,GAAG,aAAa;;ICN9C;IACA,MAAM,aAAa,GAAG,OAAO,SAAS,KAAK,WAAW;IACtD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;IACzC,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC;IAC/C,MAAM,EAAE,SAAS,SAAS,CAAC;IAClC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;IAC3B;IACA,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C;IACA,QAAQ,MAAM,IAAI,GAAG,aAAa;IAClC,cAAc,EAAE;IAChB,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACnO,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IACpC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAClD,SAAS;IACT,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,qBAAqB,IAAI,CAAC,aAAa;IACvD,sBAAsB,SAAS;IAC/B,0BAA0B,IAAIG,WAAS,CAAC,GAAG,EAAE,SAAS,CAAC;IACvD,0BAA0B,IAAIA,WAAS,CAAC,GAAG,CAAC;IAC5C,sBAAsB,IAAIA,WAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1D,SAAS;IACT,QAAQ,OAAO,GAAG,EAAE;IACpB,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,iBAAiB,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,iBAAiB,GAAG;IACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM;IAC/B,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACxC,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC;IACrD,YAAY,WAAW,EAAE,6BAA6B;IACtD,YAAY,OAAO,EAAE,UAAU;IAC/B,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAClE,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACjD,YAAY,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,YAAY,MAAM,UAAU,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,YAAY,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI;IAC9D;IACA,gBAAgB,MAAM,IAAI,GAAG,EAAE,CAAC;IAchC;IACA;IACA;IACA,gBAAgB,IAAI;IACpB,oBAAoB,IAAI,qBAAqB,EAAE;IAC/C;IACA,wBAAwB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,qBAGqB;IACrB,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,UAAU,EAAE;IAChC;IACA;IACA,oBAAoB,QAAQ,CAAC,MAAM;IACnC,wBAAwB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7C,wBAAwB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;IAC5C,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAC5B,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACvD,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAChE,iBAAiB,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACrE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAClC,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,CAAC,CAACA,WAAS,CAAC;IAC3B,KAAK;IACL;;ICzLO,MAAM,UAAU,GAAG;IAC1B,IAAI,SAAS,EAAE,EAAE;IACjB,IAAI,OAAO,EAAE,OAAO;IACpB,CAAC;;ICLD;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,EAAE,GAAG,yOAAyO,CAAC;IACrP,MAAM,KAAK,GAAG;IACd,IAAI,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IACjJ,CAAC,CAAC;IACK,SAAS,KAAK,CAAC,GAAG,EAAE;IAC3B,IAAI,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1G,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,KAAK;IACL,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;IACzB,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjF,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3F,QAAQ,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,KAAK;IACL,IAAI,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,IAAI,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD,SAAS,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;IACtD,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;IAC/B,QAAQ,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IACrE,QAAQ,IAAI,EAAE,EAAE;IAChB,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC1B,SAAS;IACT,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,CAAC;IAChB;;IC1CO,MAAMC,QAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE;IAChC,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,IAAI,CAAC;IACvB,SAAS;IACT,QAAQ,IAAI,GAAG,EAAE;IACjB,YAAY,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,YAAY,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;IACrC,YAAY,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC;IAC7E,YAAY,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACjC,YAAY,IAAI,GAAG,CAAC,KAAK;IACzB,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,SAAS;IACT,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE;IAC5B,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAClD,SAAS;IACT,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM;IACnB,YAAY,IAAI,IAAI,IAAI,CAAC,MAAM;IAC/B,kBAAkB,IAAI,CAAC,MAAM;IAC7B,kBAAkB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACpF,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,QAAQ;IACrB,YAAY,IAAI,CAAC,QAAQ;IACzB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;IACpF,QAAQ,IAAI,CAAC,IAAI;IACjB,YAAY,IAAI,CAAC,IAAI;IACrB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI;IACjE,sBAAsB,QAAQ,CAAC,IAAI;IACnC,sBAAsB,IAAI,CAAC,MAAM;IACjC,0BAA0B,KAAK;IAC/B,0BAA0B,IAAI,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtE,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,YAAY,IAAI,EAAE,YAAY;IAC9B,YAAY,KAAK,EAAE,KAAK;IACxB,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,OAAO,EAAE,IAAI;IACzB,YAAY,cAAc,EAAE,GAAG;IAC/B,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,kBAAkB,EAAE,IAAI;IACpC,YAAY,iBAAiB,EAAE;IAC/B,gBAAgB,SAAS,EAAE,IAAI;IAC/B,aAAa;IACb,YAAY,gBAAgB,EAAE,EAAE;IAChC,YAAY,mBAAmB,EAAE,IAAI;IACrC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACjE,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACvB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,QAAQ,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACpD,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;IAC/C;IACA;IACA;IACA,gBAAgB,IAAI,CAAC,yBAAyB,GAAG,MAAM;IACvD,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC;IACA,wBAAwB,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAC5D,wBAAwB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC/C,qBAAqB;IACrB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACxF,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;IAC/C,gBAAgB,IAAI,CAAC,oBAAoB,GAAG,MAAM;IAClD,oBAAoB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;IACpD,wBAAwB,WAAW,EAAE,yBAAyB;IAC9D,qBAAqB,CAAC,CAAC;IACvB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC9E,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,eAAe,CAAC,IAAI,EAAE;IAC1B,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD;IACA,QAAQ,KAAK,CAAC,GAAG,GAAGL,UAAQ,CAAC;IAC7B;IACA,QAAQ,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC/B;IACA,QAAQ,IAAI,IAAI,CAAC,EAAE;IACnB,YAAY,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IAChC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE;IACpF,YAAY,KAAK;IACjB,YAAY,MAAM,EAAE,IAAI;IACxB,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACnC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;IAC/B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;IAC3B,SAAS,CAAC,CAAC;IACX,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,SAAS,CAAC;IACtB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe;IACrC,YAAYK,QAAM,CAAC,qBAAqB;IACxC,YAAY,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;IACzD,YAAY,SAAS,GAAG,WAAW,CAAC;IACpC,SAAS;IACT,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;IAC/C;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACtE,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,aAAa;IACb,YAAY,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC;IACA,QAAQ,IAAI;IACZ,YAAY,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACpC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,SAAS,EAAE;IAC5B,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC;IACA,QAAQ,SAAS;IACjB,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,IAAI,EAAE;IAChB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI;IAC5C,gBAAgB,IAAI,MAAM;IAC1B,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC,IAAI,EAAE;IACjE,oBAAoB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1C,oBAAoB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,oBAAoB,IAAI,CAAC,SAAS;IAClC,wBAAwB,OAAO;IAC/B,oBAAoBA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC;IAClF,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM;IAC/C,wBAAwB,IAAI,MAAM;IAClC,4BAA4B,OAAO;IACnC,wBAAwB,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxD,4BAA4B,OAAO;IACnC,wBAAwB,OAAO,EAAE,CAAC;IAClC,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrD,wBAAwB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9D,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChE,wBAAwB,SAAS,GAAG,IAAI,CAAC;IACzC,wBAAwB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/C,wBAAwB,IAAI,CAAC,KAAK,EAAE,CAAC;IACrC,qBAAqB,CAAC,CAAC;IACvB,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACzD;IACA,oBAAoB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IACnD,oBAAoB,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC3D,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,QAAQ,SAAS,eAAe,GAAG;IACnC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB;IACA,YAAY,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,OAAO,EAAE,CAAC;IACtB,YAAY,SAAS,CAAC,KAAK,EAAE,CAAC;IAC9B,YAAY,SAAS,GAAG,IAAI,CAAC;IAC7B,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,GAAG,IAAI;IAC/B,YAAY,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;IAC3D;IACA,YAAY,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IAC7C,YAAY,eAAe,EAAE,CAAC;IAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrD,SAAS,CAAC;IACV,QAAQ,SAAS,gBAAgB,GAAG;IACpC,YAAY,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,SAAS,OAAO,GAAG;IAC3B,YAAY,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,SAAS;IACT;IACA,QAAQ,SAAS,SAAS,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;IACzD,gBAAgB,eAAe,EAAE,CAAC;IAClC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,MAAM;IAC9B,YAAY,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAChE,YAAY,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,QAAQ,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChD,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1C,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC3E,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB;IACA;IACA,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO;IAC7B,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IAClC,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC3C,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC/B,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,YAAY,QAAQ,MAAM,CAAC,IAAI;IAC/B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5C,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,OAAO;IAC5B,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1D;IACA,oBAAoB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3C,oBAAoB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,SAAS;IAC9B,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,oBAAoB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,aAAa;IACb,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7C,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3B,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,OAAO;IACnB,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,gBAAgB,GAAG;IACvB,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IACxD,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAC1C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACvD;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ;IACnC,YAAY,CAAC,IAAI,CAAC,SAAS;IAC3B,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC;IACA;IACA,YAAY,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAChD,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,GAAG;IACzB,QAAQ,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;IAC7C,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,sBAAsB,EAAE;IACrC,YAAY,OAAO,IAAI,CAAC,WAAW,CAAC;IACpC,SAAS;IACT,QAAQ,IAAI,WAAW,GAAG,CAAC,CAAC;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1D,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa;IACb,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;IACxD,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,aAAa;IACb,YAAY,WAAW,IAAI,CAAC,CAAC;IAC7B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IACxC,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,EAAE;IACxC,YAAY,EAAE,GAAG,IAAI,CAAC;IACtB,YAAY,IAAI,GAAG,SAAS,CAAC;IAC7B,SAAS;IACT,QAAQ,IAAI,UAAU,KAAK,OAAO,OAAO,EAAE;IAC3C,YAAY,EAAE,GAAG,OAAO,CAAC;IACzB,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3E,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAChC,QAAQ,OAAO,CAAC,QAAQ,GAAG,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,OAAO,EAAE,OAAO;IAC5B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,IAAI,EAAE;IACd,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC,SAAS,CAAC;IACV,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACtD,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS,CAAC;IACV,QAAQ,MAAM,cAAc,GAAG,MAAM;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACvD,SAAS,CAAC;IACV,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACzC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IACzC,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC,wBAAwB,cAAc,EAAE,CAAC;IACzC,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,KAAK,EAAE,CAAC;IAChC,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,iBAAiB,IAAI,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,KAAK,EAAE,CAAC;IACxB,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C;IACA,YAAY,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,YAAY,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;IAC3D,gBAAgB,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAC3F,gBAAgB,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACjF,aAAa;IACb;IACA,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC;IACA,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5D;IACA;IACA,YAAY,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAClC,YAAY,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACnC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,MAAM,gBAAgB,GAAG,EAAE,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,QAAQ,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,QAAQ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC3B,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,gBAAgB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,OAAO,gBAAgB,CAAC;IAChC,KAAK;IACL,CAAC;AACDA,YAAM,CAAC,QAAQ,GAAGL,UAAQ;;ICnkB1B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE;IACzC,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;IAClB;IACA,IAAI,GAAG,GAAG,GAAG,KAAK,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,IAAI,IAAI,GAAG;IACnB,QAAQ,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAC7C;IACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACvC,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;IACzC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;IACrC,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC9C,YAAY,IAAI,WAAW,KAAK,OAAO,GAAG,EAAE;IAC5C,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;IAChD,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;IACvC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,KAAK;IACL;IACA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;IACnB,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC9C,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5B,SAAS;IACT,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IACpD,YAAY,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IAC7B,SAAS;IACT,KAAK;IACL,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;IAC/B,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;IACxD;IACA,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACjE;IACA,IAAI,GAAG,CAAC,IAAI;IACZ,QAAQ,GAAG,CAAC,QAAQ;IACpB,YAAY,KAAK;IACjB,YAAY,IAAI;IAChB,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,OAAO,GAAG,CAAC;IACf;;IC1DA,MAAM,qBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK;IACxB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC3C,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D;IACA;IACA;IACA;IACA;IACO,SAAS,QAAQ,CAAC,GAAG,EAAE;IAC9B,IAAI,QAAQ,CAAC,qBAAqB,KAAK,GAAG,YAAY,WAAW,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACjF,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC;IAC/C,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC,EAAE;IACjD,CAAC;IACM,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;IACvC,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACzC,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACpD,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IACnC,gBAAgB,OAAO,IAAI,CAAC;IAC5B,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;IACvB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,GAAG,CAAC,MAAM;IAClB,QAAQ,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;IACxC,QAAQ,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAChC,QAAQ,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;IAC3B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IACnF,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB;;IChDA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE;IAC1C,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IACnC,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC;IACxB,IAAI,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;IACxB,QAAQ,MAAM,WAAW,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACxE,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9D,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;IAClE,QAAQ,MAAM,OAAO,GAAG,EAAE,CAAC;IAC3B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IACnD,IAAI,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;IACnC,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;IAC5C,QAAQ,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;IACzD,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC;IACzB,YAAY,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,QAAQ,IAAI,YAAY,EAAE;IAC1B,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnD,SAAS;IACT,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,SAAS;IACT,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACvC,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB;;IC/EA;IACA;IACA;IACA;IACA;IACO,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,CAAC;IACtB,CAAC,UAAU,UAAU,EAAE;IACvB,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IAClD,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;IAClE,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;IAChE,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IACpC;IACA;IACA;IACO,MAAM,OAAO,CAAC;IACrB;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,QAAQ,EAAE;IAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE;IAChB,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,GAAG,EAAE;IAC1E,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;IAChC,gBAAgB,GAAG,CAAC,IAAI;IACxB,oBAAoB,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK;IACjD,0BAA0B,UAAU,CAAC,YAAY;IACjD,0BAA0B,UAAU,CAAC,UAAU,CAAC;IAChD,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB;IACA,QAAQ,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAChD,YAAY,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAChD,YAAY,GAAG,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IACzC,SAAS;IACT;IACA;IACA,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE;IACxC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IACjC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE;IAC5B,YAAY,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;IAC9B,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB,QAAQ,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChE,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IAC/C,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACO,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,OAAO,EAAE;IACzB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,GAAG,EAAE;IACb,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACrC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;IACpC,gBAAgB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACnF,aAAa;IACb,YAAY,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IACvD,gBAAgB,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IACvD;IACA,gBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrE;IACA,gBAAgB,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,EAAE;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,aAAa;IACb,SAAS;IACT,aAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;IAC9C;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACrC,gBAAgB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACpF,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChE,gBAAgB,IAAI,MAAM,EAAE;IAC5B;IACA,oBAAoB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,GAAG,EAAE;IACtB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB;IACA,QAAQ,MAAM,CAAC,GAAG;IAClB,YAAY,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC;IACV,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;IAC9C,YAAY,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAC9C,YAAY,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAC9C,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG;IAClE,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChD,YAAY,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC7D,gBAAgB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACvD,aAAa;IACb,YAAY,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IACvC,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,GAAG,KAAK,CAAC;IAC7B,oBAAoB,MAAM;IAC1B,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACxB,SAAS;IACT;IACA,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,QAAQ,IAAI,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;IACjD,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;IACjD,oBAAoB,EAAE,CAAC,CAAC;IACxB,oBAAoB,MAAM;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7B,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;IACzD,gBAAgB,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,KAAK;IACL,IAAI,QAAQ,CAAC,GAAG,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,OAAO,KAAK,CAAC;IACzB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;IACzC,QAAQ,QAAQ,IAAI;IACpB,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC;IACnD,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,OAAO,KAAK,SAAS,CAAC;IAC7C,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC;IAClF,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;IAChC,YAAY,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;IACxD,SAAS;IACT,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,mBAAmB,CAAC;IAC1B,IAAI,WAAW,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,OAAO,EAAE;IAC5B,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;IAChE;IACA,YAAY,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,YAAY,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC1C,YAAY,OAAO,MAAM,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,sBAAsB,GAAG;IAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,KAAK;IACL;;;;;;;;;;IC/RO,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;IAChC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnB,IAAI,OAAO,SAAS,UAAU,GAAG;IACjC,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,KAAK,CAAC;IACN;;ICFA;IACA;IACA;IACA;IACA,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,CAAC;IACd,IAAI,aAAa,EAAE,CAAC;IACpB,IAAI,UAAU,EAAE,CAAC;IACjB,IAAI,aAAa,EAAE,CAAC;IACpB;IACA,IAAI,WAAW,EAAE,CAAC;IAClB,IAAI,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,MAAM,MAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA,IAAI,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;IAC/B,QAAQ,KAAK,EAAE,CAAC;IAChB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC;IACA;IACA;IACA,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACrB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY;IAChC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,YAAY,GAAG;IACvB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,IAAI;IACrB,YAAY,OAAO;IACnB,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG;IACpB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,MAAM,GAAG;IACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,SAAS;IAC1B,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC;IACrC,YAAY,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3B,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW;IAC1C,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE;IAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;IACtB,QAAQ,IAAI,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;IAChD,YAAY,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,4BAA4B,CAAC,CAAC;IAChF,SAAS;IACT,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzB,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,UAAU,CAAC,KAAK;IAClC,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC;IACV,QAAQ,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IAC5B,QAAQ,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC;IAChE;IACA,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;IACzD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,YAAY,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,YAAY,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;IAClD,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS;IACpC,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC9C,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/F,QAAQ,IAAI,aAAa,EAAE,CAClB;IACT,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3C,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;IACnC,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAChC,YAAY,OAAO;IACnB,SAAS;IACT;IACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM;IACjD,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7D,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IAClD,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,iBAAiB;IACjB,aAAa;IACb,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACjE,SAAS,EAAE,OAAO,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;IACrC;IACA,YAAY,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,MAAM,EAAE;IACnB,QAAQ,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC9B,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE;IAC5C,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;IAChC,gBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,aAAa,CAAC,CAAC;IACf,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IAC7B,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa;IAC1B,YAAY,OAAO;IACnB,QAAQ,QAAQ,MAAM,CAAC,IAAI;IAC3B,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACpD,oBAAoB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC/C,oBAAoB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACvC,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,KAAK,CAAC,2LAA2L,CAAC,CAAC,CAAC;IAC/P,iBAAiB;IACjB,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;IACpC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,gBAAgB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D;IACA,gBAAgB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5C,gBAAgB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACxD,gBAAgB,MAAM;IACtB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,SAAS;IACT,KAAK;IACL,IAAI,SAAS,CAAC,IAAI,EAAE;IACpB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IAC7D,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACzD,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,aAAa;IACb,SAAS;IACT,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,EAAE,EAAE;IACZ,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;IACzB,QAAQ,OAAO,UAAU,GAAG,IAAI,EAAE;IAClC;IACA,YAAY,IAAI,IAAI;IACpB,gBAAgB,OAAO;IACvB,YAAY,IAAI,GAAG,IAAI,CAAC;IACxB,YAAY,IAAI,CAAC,MAAM,CAAC;IACxB,gBAAgB,IAAI,EAAE,UAAU,CAAC,GAAG;IACpC,gBAAgB,EAAE,EAAE,EAAE;IACtB,gBAAgB,IAAI,EAAE,IAAI;IAC1B,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,MAAM,EAAE;IAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,QAAQ,IAAI,UAAU,KAAK,OAAO,GAAG,EAAE;IACvC,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxC,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,EAAE,EAAE;IAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;IAC5C,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;IACvB;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IAC5D,YAAY,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B;IACA,YAAY,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,QAAQ,EAAE;IACvB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,QAAQ,GAAG;IACnB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACnC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,QAAQ,EAAE;IACpB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,QAAQ,EAAE;IACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,QAAQ,EAAE;IACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACjC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;IACjD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,OAAO,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,aAAa,CAAC,QAAQ,EAAE;IAC5B,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,CAAC,QAAQ,EAAE;IACjC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;IACzC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC;IACzD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAC5C,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,OAAO,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,uBAAuB,CAAC,MAAM,EAAE;IACpC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;IAC7E,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACjE,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,aAAa;IACb,SAAS;IACT,KAAK;IACL;;IC9rBA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,OAAO,CAAC,IAAI,EAAE;IAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;IAC9B,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;IACjC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;IACzC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,EAAE,GAAG,SAAS,CAAC;IAChF,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;IACtC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;IAClB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;IAChD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;;IC3DM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,SAAS,CAAC;IAC5B,SAAS;IACT,QAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,QAAQ,CAAC,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;IAC/D,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC;IACrE,QAAQ,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,mBAAmB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IACvG,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC;IACnC,YAAY,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE;IAC5C,YAAY,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE;IAC9C,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IAC9C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC;IACvD,QAAQ,IAAI,IAAI,CAAC,YAAY;IAC7B,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL,IAAI,YAAY,CAAC,CAAC,EAAE;IACpB,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,aAAa,CAAC;IACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,iBAAiB,CAAC,CAAC,EAAE;IACzB,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAC3C,QAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,mBAAmB,CAAC,CAAC,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC;IAC7C,QAAQ,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,OAAO,CAAC,CAAC,EAAE;IACf,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa;IAC/B,YAAY,IAAI,CAAC,aAAa;IAC9B,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7C,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIM,QAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACrC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC;IACA,QAAQ,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY;IAC9D,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;IACvB,SAAS,CAAC,CAAC;IACX;IACA,QAAQ,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK;IACtD,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACxC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,EAAE,EAAE;IACpB,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC;IACxB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5C,aAAa;IACb,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,YAAY,IAAI,OAAO,KAAK,CAAC,EAAE;IAC/B,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb;IACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,cAAc,EAAE,CAAC;IACjC,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B;IACA,gBAAgB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,aAAa,EAAE,OAAO,CAAC,CAAC;IACxB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB;IACA,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC;IACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnQ,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,MAAM,EAAE;IACtB;IACA,QAAQ,QAAQ,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IACtB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,MAAM,EAAE;IACrB,YAAY,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;IAC/B,gBAAgB,OAAO;IACvB,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxD,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAClC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,IAAI,IAAI,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACvD,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;IACpD,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;IACjE,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IACtC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9E;IACA,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;IACnC,oBAAoB,IAAI,GAAG,EAAE;IAC7B,wBAAwB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnD,wBAAwB,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,wBAAwB,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAClE,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC,CAAC;IACtB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,GAAG;IAClB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9C,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,KAAK;IACL;;IClWA;IACA;IACA;IACA,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,GAAG,CAAC;IACnB,QAAQ,GAAG,GAAG,SAAS,CAAC;IACxB,KAAK;IACL,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;IACvD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACzB,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7B,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ;IACvC,QAAQ,IAAI,CAAC,sBAAsB,CAAC;IACpC,QAAQ,KAAK,KAAK,IAAI,CAAC,SAAS;IAChC,QAAQ,aAAa,CAAC;IACtB,IAAI,IAAI,EAAE,CAAC;IACX,IAAI,IAAI,aAAa,EAAE;IACvB,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;IACxB,YAAY,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,SAAS;IACT,QAAQ,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACrC,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD;IACA;IACA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;IACtB,IAAI,OAAO;IACX,IAAI,MAAM;IACV,IAAI,EAAE,EAAE,MAAM;IACd,IAAI,OAAO,EAAE,MAAM;IACnB,CAAC,CAAC;;;;QCzCU,IAAI,CAAA;QACJC,QAAM,CAAA;UAEX,OAAO,GAAA,CAAA,OAAA,EAAa,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,CAAA,CAAA;;IAE9E,KAAK,CAAI,CAAA,EAAA,OAAO,CACf,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,IAAI,IAAK,IAAI,CAAC,IAAI,EACxB,CAAA,CAAA,IAAI,CAAE,IAAI,IAAA;IAEV,CAAA,IAAI,GAAG,IAAI,CAAA;;KACXA,QAAM,GAAGC,MAAE,CAAC,OAAO,EAAA;IAElB,EAAA,IAAI,EAAE,OAAO;IACb,EAAA,KAAK,EAEJ,EAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA;;;;ICfpB,IAAI,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;gBC8CuD,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG0E,aAE1E,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;IAM+B,CAAA,IAAA,SAAA,WAAA,GAAG,IAAC,OAAO,GAAA,EAAA,CAAA;;;;;;;;;;;;;;IAAX,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,SAAA,MAAA,SAAA,WAAA,GAAG,IAAC,OAAO,GAAA,EAAA,CAAA,EAAA,QAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAA5B,IAAA,IAAA,UAAA,GAAG,IAAC,IAAI;;;;;;;;;;;;;;;;;IAAR,GAAA,IAAA,KAAA,aAAA,CAAA,EAAA,aAAA,CAAA,IAAA,WAAA,GAAG,IAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAiBqB,MAE3C,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BArCgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAiBzE,GAAK,CAAA,CAAA,CAAA,CAAA;;;;oCAAV,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;+BAkB0B,GAAQ,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBARxB,GAAG,CAAA,CAAA,CAAA,KAAA,KAAA,CAAA,EAAA,mBAAA,CAAA,6BAAA,GAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA,CAAA;;;;;;;;;;;OA9BtB,UA0CK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAxBJ,UAMK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OALJ,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;OAIN,UAQK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAPJ,UAMM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;mBAJW,GAAG,CAAA,CAAA,CAAA,KAAA,KAAA,CAAA,EAAA;iCAAH,GAAG,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;sDAEN,GAAW,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;qEA7BM,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAiBzE,GAAK,CAAA,CAAA,CAAA,CAAA;;;;mCAAV,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;4BAAJ,MAAI,EAAA,CAAA,GAAA,WAAA,CAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;yCAUU,GAAG,CAAA,CAAA,CAAA,KAAA,IAAA,CAAA,SAAA,EAAA;iCAAH,GAAG,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;sCAVjB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA1DG,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IAEhB,CAAA,IAAA,GAAG,GAAG,EAAE,CAAA;SACR,SAAS,CAAA;;;cAGJ,OAAO,CAAC,IAAI,EAAE,OAAO,EAAA;IAEzB,EAAA,IAAA,IAAI,KAAK,IAAI,CAAC,QAAQ,EACzB,IAAI,GAAG,IAAI,CAAA;;;IAEZ,EAAA,IAAI,CAAC,MAAM,CAAC,IAAI,IAAQ,CAAA,GAAA,IAAI,EAAI,EAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAA,CAAA,CAAA,CAAA;;;cAGpD,QAAQ,GAAA;sBAEhB,GAAG,GAAG,GAAG,CAAC,IAAI,EAAA,CAAA,CAAA;;UACV,GAAG,CAAC,MAAM,GAAG,CAAC,EAAA;IACjB,GAAAD,QAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAA,CAAA;OAC1B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAA,CAAA;;;IAGlB,EAAA,YAAA,CAAA,CAAA,EAAA,GAAG,GAAG,EAAE,CAAA,CAAA;IACR,EAAA,SAAS,CAAC,KAAK,EAAA,CAAA;;;IAGP,CAAA,SAAA,WAAW,CAAC,GAAG,EAAA;IAEnB,EAAA,IAAA,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,EAAA;IAEtC,GAAA,GAAG,CAAC,cAAc,EAAA,CAAA;OAClB,QAAQ,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;MAoCQ,GAAG,GAAA,IAAA,CAAA,SAAA,CAAA;;;;;;OACR,SAAS,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCjE8D,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGiC,KAEjC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAI0D,QAEzD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAlB+B,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA4DK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OA1CJ,UAwCK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OApCJ,UAAiB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACjB,UAkCK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjCJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;qEAtB3B,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGuC,UAEvC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA0CK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAxBJ,UAsBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OArBJ,UAAqB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACrB,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAlBJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAkD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;qEAnBrB,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGuC,aAEvC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAI0D,OAEzD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAQsD,QAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAC6D,QAE7D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACqD,QAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACqD,QAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BArC8B,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA8CK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OA5BJ,UAyBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OArBJ,UAAkB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAClB,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAlBJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;qEAtB3B,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGuC,aAEvC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA4BK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAVJ,UAOK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OANJ,UAAmD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACnD,UAIM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHL,UAA+C,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;OAAxB,UAAiB,CAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;OACxC,UAA+C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC/C,UAAoC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;qEApBN,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCqBgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGoC,QAEpC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UAkDK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAhCJ,UA8BK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OApBJ,UAmBM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjBL,UAAoD,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAA7B,UAAsB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAC7C,UAA+B,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAE/B,UAAqE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OACrE,UAA4D,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAApB,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAErD,UAA8D,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC9D,UAA8D,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAArB,UAAc,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAEvD,UAA4F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5F,UAAkE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAAvB,UAAgB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAE3D,UAGK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAwD,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAAjC,UAA0B,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACjD,UAAuF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAExF,UAAoC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;6DAlBL,YAAY,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;;;;qEAzBb,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAnBzE,SAAA,YAAY,CAAC,GAAG,EAAA;IAEpB,CAAA,IAAA,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,EAAA,CAAA;KAC1C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAA;KAChC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA,CAAA;;SACnB,WAAW,EAAA;MAEd,KAAK,CAAC,qBAAqB,EAAA,EAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,CAAC,MAAM,EAAA,CAAA,CAAA;;;;;;;IAZR,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGkC,QAElC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA+KK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OA3JJ,UAwJK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAvJJ,UAAkD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAClD,UAqJM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAnJL,UAA0E,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC1E,UAAsE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAArB,UAAc,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAC/D,UA+IK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA7IJ,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAe,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACf,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAA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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte index 47c732df..014e8991 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte @@ -3,50 +3,57 @@ import Layouts from './Chat_layouts.svelte'; export let color = "transparent"; - import { onMount } from 'svelte'; /* web sockets with socket.io */ - import { socket } from './Chat_socket.svelte'; + import { socket, user } from './Chat_socket.svelte'; + import { msgs } from './Store_msg.js'; - onMount(async() => { - await socket; - socket.on('connect', function(){ - console.log("socket.io connected"); - }); - socket.on('disconnect', function(){ - console.log("socket.io disconnected"); - }); - socket.on('connect_error', function(){ - console.log("socket.io connect_error"); - }); - socket.on('connect_timeout', function(){ - console.log("socket.io connect_timeout"); - }); - socket.on('error', function(){ - console.log("socket.io error"); - }); - socket.on('reconnect', function(){ - console.log("socket.io reconnect"); - }); - socket.on('reconnect_attempt', function(){ - console.log("socket.io reconnect_attempt"); - }); - socket.on('reconnecting', function(){ - console.log("socket.io reconnecting"); - }); - socket.on('reconnect_error', function(){ - console.log("socket.io reconnect_error"); - }); - socket.on('reconnect_failed', function(){ - console.log("socket.io reconnect_failed"); - }); - socket.on('ping', function(){ - console.log("socket.io ping"); - }); - socket.on('pong', function(){ - console.log("socket.io pong"); - }); + // pbm: sometimes socket is still undefined here + socket.on('connect', function(){ + console.log("socket.io connected"); + }); + socket.on('disconnect', function(){ + console.log("socket.io disconnected"); + }); + socket.on('connect_error', function(){ + console.log("socket.io connect_error"); + }); + socket.on('connect_timeout', function(){ + console.log("socket.io connect_timeout"); + }); + socket.on('error', function(){ + console.log("socket.io error"); + }); + socket.on('reconnect', function(){ + console.log("socket.io reconnect"); + }); + socket.on('reconnect_attempt', function(){ + console.log("socket.io reconnect_attempt"); + }); + socket.on('reconnecting', function(){ + console.log("socket.io reconnecting"); + }); + socket.on('reconnect_error', function(){ + console.log("socket.io reconnect_error"); + }); + socket.on('reconnect_failed', function(){ + console.log("socket.io reconnect_failed"); + }); + socket.on('ping', function(){ + console.log("socket.io ping"); + }); + socket.on('pong', function(){ + console.log("socket.io pong"); + }); + + + socket.on('message', (from, message) => { + if (from === user.username) + from = "me"; + //msgs = [...msgs, { content: message, name: from }]; + msgs.update(msgs => [...msgs, { content: message, name: from }]); + //add_msg(name, message); }); diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte index 861f1827..7b2f4169 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte @@ -4,25 +4,21 @@ import Button from './Chat_button.svelte'; import Msg from './Chat_msg.svelte'; import { socket, user } from './Chat_socket.svelte'; - - socket.on('message', (name, message) => { - console.log(name) - console.log(message) - add_msg(name, message); - }); + import { msgs } from './Store_msg.js'; export let layout = ""; export let back = ""; let msg = ""; let text_area; - let msgs = []; + //let msgs = []; function add_msg(from, message) { if (from === user.username) from = "me"; - msgs = [...msgs, { content: message, name: from }]; + //msgs = [...msgs, { content: message, name: from }]; + msgs.update(msgs => [...msgs, { content: message, name: from }]); } function send_msg() @@ -68,7 +64,7 @@
    - {#each msgs as msg} + {#each $msgs as msg} {@html msg.content} {/each}
    diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Store_msg.js b/srcs/requirements/svelte/api_front/src/pieces/chat/Store_msg.js new file mode 100644 index 00000000..4d44d051 --- /dev/null +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Store_msg.js @@ -0,0 +1,5 @@ + +import { writable } from 'svelte/store'; + +export let msgs = writable([]); + From 286d79ed06a8f37387385719dab980196bdde3ba Mon Sep 17 00:00:00 2001 From: simplonco Date: Thu, 5 Jan 2023 10:26:09 +0100 Subject: [PATCH 09/35] small changes and clean comments --- .../svelte/api_front/public/build/bundle.js | 52 ++++++++----------- .../api_front/public/build/bundle.js.map | 2 +- .../api_front/src/pieces/chat/Chat.svelte | 8 +-- .../src/pieces/chat/Layout_room.svelte | 10 ++-- .../src/pieces/chat/Socket_states.js | 1 + .../api_front/src/pieces/chat/Store_msg.js | 2 + 6 files changed, 34 insertions(+), 41 deletions(-) create mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/Socket_states.js diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 39f7aec9..366b69b9 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -7879,7 +7879,7 @@ var app = (function () { return child_ctx; } - // (50:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":";;;;;IAAA,SAAS,IAAI,GAAG,GAAG;IACnB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;IAC1B;IACA,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG;IACvB,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD,SAAS,UAAU,CAAC,KAAK,EAAE;IAC3B,IAAI,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;IAClF,CAAC;IACD,SAAS,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACzD,IAAI,OAAO,CAAC,aAAa,GAAG;IAC5B,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACzC,KAAK,CAAC;IACN,CAAC;IACD,SAAS,GAAG,CAAC,EAAE,EAAE;IACjB,IAAI,OAAO,EAAE,EAAE,CAAC;IAChB,CAAC;IACD,SAAS,YAAY,GAAG;IACxB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,SAAS,OAAO,CAAC,GAAG,EAAE;IACtB,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,SAAS,WAAW,CAAC,KAAK,EAAE;IAC5B,IAAI,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;IACvC,CAAC;IACD,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,KAAK,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,oBAAoB,CAAC;IACzB,SAAS,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE;IACzC,IAAI,IAAI,CAAC,oBAAoB,EAAE;IAC/B,QAAQ,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3D,KAAK;IACL,IAAI,oBAAoB,CAAC,IAAI,GAAG,GAAG,CAAC;IACpC,IAAI,OAAO,WAAW,KAAK,oBAAoB,CAAC,IAAI,CAAC;IACrD,CAAC;IAID,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE;IACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE;IAChE,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAC9E,KAAK;IACL,CAAC;IACD,SAAS,SAAS,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE;IACxC,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;IACvB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,CAAC,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC;IACjE,CAAC;IAMD,SAAS,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzD,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,SAAS,WAAW,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IACnD,IAAI,IAAI,UAAU,EAAE;IACpB,QAAQ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACxE,QAAQ,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvC,KAAK;IACL,CAAC;IACD,SAAS,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IACxD,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;IAC9B,UAAU,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,UAAU,OAAO,CAAC,GAAG,CAAC;IACtB,CAAC;IACD,SAAS,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1D,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;IAC7B,QAAQ,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;IACzC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACtC,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC;IAC9B,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;IAC7C,gBAAgB,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,aAAa;IACb,YAAY,OAAO,MAAM,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IACpC,KAAK;IACL,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC;IACzB,CAAC;IACD,SAAS,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE;IAClG,IAAI,IAAI,YAAY,EAAE;IACtB,QAAQ,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAClG,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC3C,KAAK;IACL,CAAC;IAKD,SAAS,wBAAwB,CAAC,OAAO,EAAE;IAC3C,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE;IACjC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC;IACzB,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;IACzC,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAgCD,SAAS,aAAa,CAAC,KAAK,EAAE;IAC9B,IAAI,OAAO,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;IACtC,CAAC;IAMD,SAAS,gBAAgB,CAAC,aAAa,EAAE;IACzC,IAAI,OAAO,aAAa,IAAI,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9F,CAAC;AACD;IACA,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IAChD,IAAI,GAAG,GAAG,SAAS;IACnB,MAAM,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;IACpC,MAAM,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,SAAS,GAAG,EAAE,IAAI,qBAAqB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AAQ7D;IACA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACxB,SAAS,SAAS,CAAC,GAAG,EAAE;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI;IAC1B,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;IAC1B,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;IACrB,SAAS;IACT,KAAK,CAAC,CAAC;IACP,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;IACxB,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAOD;IACA;IACA;IACA;IACA,SAAS,IAAI,CAAC,QAAQ,EAAE;IACxB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;IACxB,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,IAAI,OAAO;IACX,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,IAAI;IACxC,YAAY,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1D,SAAS,CAAC;IACV,QAAQ,KAAK,GAAG;IAChB,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,SAAS;IACT,KAAK,CAAC;IACN,CAAC;IAuGD,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;IAC9B,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAUD,SAAS,kBAAkB,CAAC,IAAI,EAAE;IAClC,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,QAAQ,CAAC;IACxB,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;IAC5E,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;IAC3B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,SAAS,uBAAuB,CAAC,IAAI,EAAE;IACvC,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;IAC/D,IAAI,OAAO,aAAa,CAAC,KAAK,CAAC;IAC/B,CAAC;IACD,SAAS,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE;IACxC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB,CAAC;IAyBD,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IACtC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;IAC9C,CAAC;IASD,SAAS,MAAM,CAAC,IAAI,EAAE;IACtB,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;IACzB,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK;IACL,CAAC;IACD,SAAS,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE;IAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACnD,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC;IACzB,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvC,KAAK;IACL,CAAC;IACD,SAAS,OAAO,CAAC,IAAI,EAAE;IACvB,IAAI,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAgBD,SAAS,WAAW,CAAC,IAAI,EAAE;IAC3B,IAAI,OAAO,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IACD,SAAS,IAAI,CAAC,IAAI,EAAE;IACpB,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,KAAK,GAAG;IACjB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,SAASA,OAAK,GAAG;IACjB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;IAC/C,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IACD,SAAS,eAAe,CAAC,EAAE,EAAE;IAC7B,IAAI,OAAO,UAAU,KAAK,EAAE;IAC5B,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;IAC/B;IACA,QAAQ,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,KAAK,CAAC;IACN,CAAC;IAsBD,SAAS,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IACtC,IAAI,IAAI,KAAK,IAAI,IAAI;IACrB,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,KAAK;IACnD,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAgED,SAAS,QAAQ,CAAC,OAAO,EAAE;IAC3B,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IA4HD,SAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE;IACvC,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;IAC7C,CAAC;IASD,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;IACxB,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACvC,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC;IACzE,KAAK;IACL,CAAC;IACD,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE;IACtC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACvD,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzC,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;IACtC,YAAY,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACnC,YAAY,OAAO;IACnB,SAAS;IACT,KAAK;IACL,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IAOD,SAAS,YAAY,CAAC,MAAM,EAAE;IAC9B,IAAI,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,eAAe,IAAI,eAAe,CAAC,OAAO,CAAC;IACtD,CAAC;IAyDD,SAAS,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7C,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE;IAClF,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;IAyBD,MAAM,OAAO,CAAC;IACd,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,EAAE;IAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrB,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IACrB,YAAY,IAAI,IAAI,CAAC,MAAM;IAC3B,gBAAgB,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD;IACA,gBAAgB,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;IAC5B,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS;IACT,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC/C,KAAK;IACL,IAAI,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACnD,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9C,SAAS;IACT,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;IACjB,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrB,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,CAAC,GAAG;IACR,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK;IACL,CAAC;AAsCD;IACA;IACA;IACA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf;IACA,SAAS,IAAI,CAAC,GAAG,EAAE;IACnB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC;IACpB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;IACvB,IAAI,OAAO,CAAC,EAAE;IACd,QAAQ,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC;IACtB,CAAC;IACD,SAAS,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE;IAC7C,IAAI,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC1E,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE;IACrE,IAAI,MAAM,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;IACvC,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,QAAQ,SAAS,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,KAAK;IACL,IAAI,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACjG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3B,QAAQ,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxF,KAAK;IACL,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IACjD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChH,IAAI,MAAM,IAAI,CAAC,CAAC;IAChB,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,SAAS,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE;IACjC,IAAI,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI;IACrC,UAAU,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IACxC,UAAU,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjD,KAAK,CAAC;IACN,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClD,IAAI,IAAI,OAAO,EAAE;IACjB,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,MAAM,IAAI,OAAO,CAAC;IAC1B,QAAQ,IAAI,CAAC,MAAM;IACnB,YAAY,WAAW,EAAE,CAAC;IAC1B,KAAK;IACL,CAAC;IACD,SAAS,WAAW,GAAG;IACvB,IAAI,GAAG,CAAC,MAAM;IACd,QAAQ,IAAI,MAAM;IAClB,YAAY,OAAO;IACnB,QAAQ,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI;IACvC,YAAY,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;IAClD;IACA,YAAY,IAAI,SAAS;IACzB,gBAAgB,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,SAAS,CAAC,CAAC;IACX,QAAQ,cAAc,CAAC,KAAK,EAAE,CAAC;IAC/B,KAAK,CAAC,CAAC;IACP,CAAC;AAsED;IACA,IAAI,iBAAiB,CAAC;IACtB,SAAS,qBAAqB,CAAC,SAAS,EAAE;IAC1C,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAClC,CAAC;IACD,SAAS,qBAAqB,GAAG;IACjC,IAAI,IAAI,CAAC,iBAAiB;IAC1B,QAAQ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC5E,IAAI,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAWD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,OAAO,CAAC,EAAE,EAAE;IACrB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IACD;IACA;IACA;IACA;IACA;IACA,SAAS,WAAW,CAAC,EAAE,EAAE;IACzB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,SAAS,CAAC,EAAE,EAAE;IACvB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,qBAAqB,GAAG;IACjC,IAAI,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC;IAC9C,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK;IAC1D,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,IAAI,SAAS,EAAE;IACvB;IACA;IACA,YAAY,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,YAAY,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI;IAC5C,gBAAgB,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1C,aAAa,CAAC,CAAC;IACf,YAAY,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC3C,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK,CAAC;IACN,CAAC;IA0CD;IACA;IACA;IACA,SAAS,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE;IAClC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,IAAI,SAAS,EAAE;IACnB;IACA,QAAQ,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,KAAK;IACL,CAAC;AACD;IACA,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAE5B,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B,MAAM,eAAe,GAAG,EAAE,CAAC;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3C,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,SAAS,eAAe,GAAG;IAC3B,IAAI,IAAI,CAAC,gBAAgB,EAAE;IAC3B,QAAQ,gBAAgB,GAAG,IAAI,CAAC;IAChC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,KAAK;IACL,CAAC;IACD,SAAS,IAAI,GAAG;IAChB,IAAI,eAAe,EAAE,CAAC;IACtB,IAAI,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IACD,SAAS,mBAAmB,CAAC,EAAE,EAAE;IACjC,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,SAAS,kBAAkB,CAAC,EAAE,EAAE;IAChC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,SAAS,KAAK,GAAG;IACjB,IAAI,MAAM,eAAe,GAAG,iBAAiB,CAAC;IAC9C,IAAI,GAAG;IACP;IACA;IACA,QAAQ,OAAO,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE;IACnD,YAAY,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzD,YAAY,QAAQ,EAAE,CAAC;IACvB,YAAY,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC7C,YAAY,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjC,SAAS;IACT,QAAQ,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,QAAQ,QAAQ,GAAG,CAAC,CAAC;IACrB,QAAQ,OAAO,iBAAiB,CAAC,MAAM;IACvC,YAAY,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC;IACtC;IACA;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IAC7D,YAAY,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC/C;IACA,gBAAgB,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,gBAAgB,QAAQ,EAAE,CAAC;IAC3B,aAAa;IACb,SAAS;IACT,QAAQ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,KAAK,QAAQ,gBAAgB,CAAC,MAAM,EAAE;IACtC,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE;IACnC,QAAQ,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC;IAChC,KAAK;IACL,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IACD,SAAS,MAAM,CAAC,EAAE,EAAE;IACpB,IAAI,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;IACpB,QAAQ,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IAC/B,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrD,KAAK;IACL,CAAC;AACD;IACA,IAAI,OAAO,CAAC;IACZ,SAAS,IAAI,GAAG;IAChB,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM;IAC3B,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IACzC,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,IAAI,MAAM,CAAC;IACX,SAAS,YAAY,GAAG;IACxB,IAAI,MAAM,GAAG;IACb,QAAQ,CAAC,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,EAAE;IACb,QAAQ,CAAC,EAAE,MAAM;IACjB,KAAK,CAAC;IACN,CAAC;IACD,SAAS,YAAY,GAAG;IACxB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IACnB,QAAQ,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK;IACL,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,SAAS,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE;IACrC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE;IAC1B,QAAQ,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK;IACL,CAAC;IACD,SAAS,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;IACxD,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE;IAC1B,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B,YAAY,OAAO;IACnB,QAAQ,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B,QAAQ,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;IAC5B,YAAY,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,YAAY,IAAI,QAAQ,EAAE;IAC1B,gBAAgB,IAAI,MAAM;IAC1B,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,gBAAgB,QAAQ,EAAE,CAAC;IAC3B,aAAa;IACb,SAAS,CAAC,CAAC;IACX,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK;IACL,SAAS,IAAI,QAAQ,EAAE;IACvB,QAAQ,QAAQ,EAAE,CAAC;IACnB,KAAK;IACL,CAAC;IACD,MAAM,eAAe,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACxC,SAAS,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE;IAChD,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;IACxB,IAAI,IAAI,cAAc,CAAC;IACvB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;IAChB,IAAI,SAAS,OAAO,GAAG;IACvB,QAAQ,IAAI,cAAc;IAC1B,YAAY,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9C,KAAK;IACL,IAAI,SAAS,EAAE,GAAG;IAClB,QAAQ,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,eAAe,CAAC;IAC7G,QAAQ,IAAI,GAAG;IACf,YAAY,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1F,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,QAAQ,MAAM,UAAU,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC;IACzC,QAAQ,MAAM,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC/C,QAAQ,IAAI,IAAI;IAChB,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,QAAQ,OAAO,GAAG,IAAI,CAAC;IACvB,QAAQ,mBAAmB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,QAAQ,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI;IAC3B,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,IAAI,GAAG,IAAI,QAAQ,EAAE;IACrC,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,oBAAoB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,oBAAoB,OAAO,EAAE,CAAC;IAC9B,oBAAoB,OAAO,OAAO,GAAG,KAAK,CAAC;IAC3C,iBAAiB;IACjB,gBAAgB,IAAI,GAAG,IAAI,UAAU,EAAE;IACvC,oBAAoB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,GAAG,UAAU,IAAI,QAAQ,CAAC,CAAC;IACpE,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,OAAO,CAAC;IAC3B,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;IACxB,IAAI,OAAO;IACX,QAAQ,KAAK,GAAG;IAChB,YAAY,IAAI,OAAO;IACvB,gBAAgB,OAAO;IACvB,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;IACrC,gBAAgB,MAAM,GAAG,MAAM,EAAE,CAAC;IAClC,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,EAAE,EAAE,CAAC;IACrB,aAAa;IACb,SAAS;IACT,QAAQ,UAAU,GAAG;IACrB,YAAY,OAAO,GAAG,KAAK,CAAC;IAC5B,SAAS;IACT,QAAQ,GAAG,GAAG;IACd,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,OAAO,EAAE,CAAC;IAC1B,gBAAgB,OAAO,GAAG,KAAK,CAAC;IAChC,aAAa;IACb,SAAS;IACT,KAAK,CAAC;IACN,CAAC;AAkKD;IACA,SAAS,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE;IACvC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClC,IAAI,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;IAC7C,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;IAChC,YAAY,OAAO;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;IACjC,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE;IAC/B,YAAY,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1C,YAAY,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnC,SAAS;IACT,QAAQ,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/D,QAAQ,IAAI,WAAW,GAAG,KAAK,CAAC;IAChC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;IACxB,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;IAC7B,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK;IAClD,oBAAoB,IAAI,CAAC,KAAK,KAAK,IAAI,KAAK,EAAE;IAC9C,wBAAwB,YAAY,EAAE,CAAC;IACvC,wBAAwB,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM;IAC1D,4BAA4B,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;IAC1D,gCAAgC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD,6BAA6B;IAC7B,yBAAyB,CAAC,CAAC;IAC3B,wBAAwB,YAAY,EAAE,CAAC;IACvC,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,iBAAiB;IACjB,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,aAAa;IACb,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;IACtB,YAAY,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACpC,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,YAAY,WAAW,GAAG,IAAI,CAAC;IAC/B,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,QAAQ,IAAI,IAAI,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACvC,QAAQ,IAAI,WAAW,EAAE;IACzB,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,KAAK;IACL,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;IAC7B,QAAQ,MAAM,iBAAiB,GAAG,qBAAqB,EAAE,CAAC;IAC1D,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI;IAC9B,YAAY,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACrD,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpD,YAAY,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,SAAS,EAAE,KAAK,IAAI;IACpB,YAAY,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACrD,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrD,YAAY,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChC,gBAAgB,MAAM,KAAK,CAAC;IAC5B,aAAa;IACb,SAAS,CAAC,CAAC;IACX;IACA,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;IAC3C,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE;IACxC,YAAY,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAChC,KAAK;IACL,CAAC;IACD,SAAS,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;IACrD,IAAI,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;IAClC,IAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC9B,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE;IACpC,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACzC,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE;IACrC,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACzC,KAAK;IACL,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;AACD;IACA,MAAM,OAAO,IAAI,OAAO,MAAM,KAAK,WAAW;IAC9C,MAAM,MAAM;IACZ,MAAM,OAAO,UAAU,KAAK,WAAW;IACvC,UAAU,UAAU;IACpB,UAAU,MAAM,CAAC,CAAC;AAwGlB;IACA,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IAC5C,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;IACtB,IAAI,MAAM,WAAW,GAAG,EAAE,CAAC;IAC3B,IAAI,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,IAAI,CAAC,EAAE;IACf,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/B,oBAAoB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,aAAa;IACb,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;IACzC,oBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,oBAAoB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,iBAAiB;IACjB,aAAa;IACb,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT,aAAa;IACb,YAAY,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;IACjC,gBAAgB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;IACnC,QAAQ,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC;IAC5B,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACpC,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,iBAAiB,CAAC,YAAY,EAAE;IACzC,IAAI,OAAO,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;IACzF,CAAC;AAmND;IACA,SAAS,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzC,IAAI,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;IAC7B,QAAQ,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IAC7C,QAAQ,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL,CAAC;IACD,SAAS,gBAAgB,CAAC,KAAK,EAAE;IACjC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC;IAID,SAAS,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;IACnE,IAAI,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IACpD,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,aAAa,EAAE;IACxB;IACA,QAAQ,mBAAmB,CAAC,MAAM;IAClC,YAAY,MAAM,cAAc,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACtF;IACA;IACA;IACA,YAAY,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE;IACzC,gBAAgB,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IAChE,aAAa;IACb,iBAAiB;IACjB;IACA;IACA,gBAAgB,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,aAAa;IACb,YAAY,SAAS,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvC,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IACD,SAAS,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE;IACjD,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC9B,QAAQ,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChD;IACA;IACA,QAAQ,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;IACpB,KAAK;IACL,CAAC;IACD,SAAS,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE;IAClC,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;IACtC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,eAAe,EAAE,CAAC;IAC1B,QAAQ,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK;IACL,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,SAASC,MAAI,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAC5G,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;IAC/C,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG;IAC9B,QAAQ,QAAQ,EAAE,IAAI;IACtB,QAAQ,GAAG,EAAE,EAAE;IACf;IACA,QAAQ,KAAK;IACb,QAAQ,MAAM,EAAE,IAAI;IACpB,QAAQ,SAAS;IACjB,QAAQ,KAAK,EAAE,YAAY,EAAE;IAC7B;IACA,QAAQ,QAAQ,EAAE,EAAE;IACpB,QAAQ,UAAU,EAAE,EAAE;IACtB,QAAQ,aAAa,EAAE,EAAE;IACzB,QAAQ,aAAa,EAAE,EAAE;IACzB,QAAQ,YAAY,EAAE,EAAE;IACxB,QAAQ,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAClG;IACA,QAAQ,SAAS,EAAE,YAAY,EAAE;IACjC,QAAQ,KAAK;IACb,QAAQ,UAAU,EAAE,KAAK;IACzB,QAAQ,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC,EAAE,CAAC,IAAI;IACxD,KAAK,CAAC;IACN,IAAI,aAAa,IAAI,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,CAAC,GAAG,GAAG,QAAQ;IACrB,UAAU,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,KAAK;IACxE,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACtD,YAAY,IAAI,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE;IACnE,gBAAgB,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,gBAAgB,IAAI,KAAK;IACzB,oBAAoB,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,YAAY,OAAO,GAAG,CAAC;IACvB,SAAS,CAAC;IACV,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B;IACA,IAAI,EAAE,CAAC,QAAQ,GAAG,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpE,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE;IAE7B,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD;IACA,YAAY,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,YAAY,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb;IACA,YAAY,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,OAAO,CAAC,KAAK;IACzB,YAAY,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACjD,QAAQ,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1F,QAAQ,KAAK,EAAE,CAAC;IAChB,KAAK;IACL,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAiDD;IACA;IACA;IACA,MAAM,eAAe,CAAC;IACtB,IAAI,QAAQ,GAAG;IACf,QAAQ,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACnC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,KAAK;IACL,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE;IACxB,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;IACpC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,MAAM,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtF,QAAQ,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,OAAO,MAAM;IACrB,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtD,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC;IAC5B,gBAAgB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS,CAAC;IACV,KAAK;IACL,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;IAC9C,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;IACtC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;IACvC,SAAS;IACT,KAAK;IACL,CAAC;AACD;IACA,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;IACpC,IAAI,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChH,CAAC;IACD,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;IAClC,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAKD,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAC1C,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAKD,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAgBD,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE;IAC9F,IAAI,MAAM,SAAS,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IACvG,IAAI,IAAI,mBAAmB;IAC3B,QAAQ,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzC,IAAI,IAAI,oBAAoB;IAC5B,QAAQ,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1C,IAAI,YAAY,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACnF,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,OAAO,MAAM;IACjB,QAAQ,YAAY,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1F,QAAQ,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC;IACN,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,IAAI,IAAI;IACrB,QAAQ,YAAY,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE;IACA,QAAQ,YAAY,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC3B,IAAI,YAAY,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAKD,SAAS,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;IAClC,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;IAC/B,QAAQ,OAAO;IACf,IAAI,YAAY,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,SAAS,sBAAsB,CAAC,GAAG,EAAE;IACrC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,EAAE,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,CAAC,EAAE;IACzF,QAAQ,IAAI,GAAG,GAAG,gDAAgD,CAAC;IACnE,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,IAAI,GAAG,EAAE;IAC3E,YAAY,GAAG,IAAI,+DAA+D,CAAC;IACnF,SAAS;IACT,QAAQ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,KAAK;IACL,CAAC;IACD,SAAS,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;IAC1C,IAAI,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAC9C,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;IACtC,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,SAAS;IACT,KAAK;IACL,CAAC;IAYD,SAAS,8BAA8B,CAAC,SAAS,EAAE,KAAK,EAAE;IAC1D,IAAI,MAAM,aAAa,GAAG,qEAAqE,CAAC;IAChG,IAAI,IAAI;IACR,QAAQ,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9C,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IACnF,YAAY,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,OAAO,QAAQ,CAAC;IACxB,KAAK;IACL,IAAI,OAAO,GAAG,EAAE;IAChB,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAChC,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,EAAE;IAC3F,YAAY,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,SAAS;IACT,aAAa;IACb,YAAY,MAAM,GAAG,CAAC;IACtB,SAAS;IACT,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA,MAAM,kBAAkB,SAAS,eAAe,CAAC;IACjD,IAAI,WAAW,CAAC,OAAO,EAAE;IACzB,QAAQ,IAAI,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;IAChE,YAAY,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC7D,SAAS;IACT,QAAQ,KAAK,EAAE,CAAC;IAChB,KAAK;IACL,IAAI,QAAQ,GAAG;IACf,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM;IAC9B,YAAY,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC5D,SAAS,CAAC;IACV,KAAK;IACL,IAAI,cAAc,GAAG,GAAG;IACxB,IAAI,aAAa,GAAG,GAAG;IACvB;;ICtsEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAASC,MAAI,CAAC,IAAI,EAAE;IAC3B,IAAI,IAAI,CAAC,IAAI,EAAE;IACf,QAAQ,MAAM,KAAK,CAAC,4BAA4B,CAAC;IACjD,KAAK;AACL;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IACjD,QAAQ,MAAM,KAAK,CAAC,8DAA8D,CAAC;IACnF,KAAK;AACL;IACA;IACA,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;IACxB,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAC;IACnE,KAAK;AACL;IACA;IACA,IAAI,IAAI,OAAO,IAAI,CAAC,cAAc,IAAI,UAAU,EAAE;IAClD,QAAQ,MAAM,KAAK,CAAC,6CAA6C,CAAC;IAClE,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;IACzB;IACA,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;IAC7C,YAAY,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,EAAC;IAC/C,SAAS;IACT,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACzD,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE;IAChF,gBAAgB,MAAM,KAAK,CAAC,+BAA+B,GAAG,CAAC,GAAG,GAAG,CAAC;IACtE,aAAa;IACb,SAAS;IACT,KAAK;AACL;IACA;IACA,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;IAC/B,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAgB;IAC3D,QAAQ,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,UAAS;IAC3E,KAAK;AACL;IACA;IACA;IACA,IAAI,MAAM,GAAG,GAAG;IAChB,QAAQ,SAAS,EAAE,IAAI,CAAC,cAAc;IACtC,QAAQ,QAAQ,EAAE,IAAI,CAAC,QAAQ;IAC/B,QAAQ,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,GAAG,SAAS;IAC7F,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE;IAC/E,QAAQ,gBAAgB,EAAE,IAAI;IAC9B,MAAK;AACL;IACA,IAAI,OAAO,GAAG;IACd;;ICvFA,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;IAChC,IAAI,OAAO;IACX,QAAQ,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS;IACnD,KAAK,CAAC;IACN,CAAC;IACD;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE;IACvC,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE;IAC5B,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;IAC9C,YAAY,KAAK,GAAG,SAAS,CAAC;IAC9B,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAC3D,gBAAgB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;IACtD,oBAAoB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7D,iBAAiB;IACjB,gBAAgB,IAAI,SAAS,EAAE;IAC/B,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACzE,wBAAwB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,qBAAqB;IACrB,oBAAoB,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,SAAS,MAAM,CAAC,EAAE,EAAE;IACxB,QAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE;IAC/C,QAAQ,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7C,QAAQ,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;IACpC,YAAY,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACtC,SAAS;IACT,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,QAAQ,OAAO,MAAM;IACrB,YAAY,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,YAAY,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;IACxC,gBAAgB,IAAI,EAAE,CAAC;IACvB,gBAAgB,IAAI,GAAG,IAAI,CAAC;IAC5B,aAAa;IACb,SAAS,CAAC;IACV,KAAK;IACL,IAAI,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;IACD,SAAS,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE;IAC5C,IAAI,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,MAAM,YAAY,GAAG,MAAM;IAC/B,UAAU,CAAC,MAAM,CAAC;IAClB,UAAU,MAAM,CAAC;IACjB,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,IAAI,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,KAAK;IAC5C,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC;IAC1B,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC;IAC3B,QAAQ,MAAM,IAAI,GAAG,MAAM;IAC3B,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,OAAO;IACvB,aAAa;IACb,YAAY,OAAO,EAAE,CAAC;IACtB,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IAChE,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,aAAa;IACb,iBAAiB;IACjB,gBAAgB,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9D,aAAa;IACb,SAAS,CAAC;IACV,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK;IACzF,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9B,YAAY,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,YAAY,IAAI,MAAM,EAAE;IACxB,gBAAgB,IAAI,EAAE,CAAC;IACvB,aAAa;IACb,SAAS,EAAE,MAAM;IACjB,YAAY,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC,CAAC;IACZ,QAAQ,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,OAAO,SAAS,IAAI,GAAG;IAC/B,YAAY,OAAO,CAAC,aAAa,CAAC,CAAC;IACnC,YAAY,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC;IACV,KAAK,CAAC,CAAC;IACP;;ICpGO,SAASC,OAAK,CAAC,GAAG,EAAE,KAAK,EAAE;IAClC,CAAC,IAAI,GAAG,YAAY,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/D,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;AACvB;IACA,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE;IAC3B,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACb,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE;IACjB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,GAAG,OAAO,IAAI,OAAO,CAAC;IACtB,GAAG,MAAM,IAAI,CAAC,KAAK,GAAG,EAAE;IACxB,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3B,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC7B,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACvE,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,gBAAgB,GAAG,WAAW,CAAC;IAC7D,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxE,GAAG,MAAM;IACT,GAAG,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC;IACxB,GAAG;IACH,EAAE;AACF;IACA,CAAC,OAAO;IACR,EAAE,IAAI,EAAE,IAAI;IACZ,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,IAAI,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC;IACzE,EAAE,CAAC;IACH;;;;;;;;;;;sDCqPQ,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;sCAFF,GAAS,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uFAEZ,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;0DAFF,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IANP,CAAA,MAAA,6BAAA,GAAA,CAAA,EAAA,MAAA,sBAAA,GAAe,iBAEpB,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;sCAHF,GAAS,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEACP,GAAe,CAAA,CAAA,CAAA,EAAA;4DAEpB,GAAK,CAAA,CAAA,CAAA,CAAA;;;;0DAHF,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAFf,GAAe,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IArPJ,SAAA,IAAI,CAAC,SAAS,EAAE,QAAQ,KAAK,UAAU,EAAA;;;KAGnD,OAAO,CAAC,IAAI,CAAC,0LAA0L,CAAA,CAAA;;IAChM,CAAA,OAAAC,MAAK,CACR,EAAA,SAAS,EACT,QAAQ,EACR,UAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;aAeC,WAAW,GAAA;WACV,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA,CAAA;;SAClD,QAAQ,GAAI,YAAY,GAAA,CAAI,CAAC;OAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAA;OAAI,GAAE,CAAA;;;IAGjF,CAAA,MAAA,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAA,CAAA;;IACnC,CAAA,IAAA,WAAW,GAAG,EAAC,CAAA;;IACf,CAAA,IAAA,UAAU,IAAI,CAAC,EAAA;IACf,EAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAA,CAAA;IAC5C,EAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAA,CAAA;;;IAGpC,CAAA,OAAA,EAAA,QAAQ,EAAE,WAAW,EAAA,CAAA;;;UAMpB,GAAG,GAAG,QAAQ,CACvB,IAAI;IAEK,SAAA,KAAK,CAAC,GAAG,EAAA;IACd,CAAA,GAAG,CAAC,WAAW,EAAA,CAAA,CAAA;;WAET,MAAM,GAAA,MAAA;IACR,EAAA,GAAG,CAAC,WAAW,EAAA,CAAA,CAAA;;;IAEnB,CAAA,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAA,CAAA;;qBAEnC,IAAI,GAAA;IAChB,EAAA,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAA,CAAA;;;;UAQrDC,UAAQ,GAAG,OAAO,CAC3B,GAAG,EACF,IAAI,IAAK,IAAI,CAAC,QAAA,CAAA,CAAA;UAMN,WAAW,GAAG,OAAO,CAC9B,GAAG,EACF,IAAI,IAAK,IAAI,CAAC,WAAA,CAAA,CAAA;UAQN,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAA,CAAA;;IAQlB,eAAA,IAAI,CAAC,QAAQ,EAAA;UAC1B,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,IAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAA,KAAM,CAAC,EAAA;IACxF,EAAA,MAAA,KAAK,CAAC,4BAA4B,CAAA,CAAA;;;;WAItC,IAAI,EAAA,CAAA;;;IAGV,CAAA,OAAO,CAAC,YAAY;;IAAK,GAAA,GAAA,OAAO,CAAC,KAAK;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;;MAAG,SAAS;;;IAC5I,CAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAA,CAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,QAAA,CAAA;;;mBAQ9C,GAAG,GAAA;;WAEf,IAAI,EAAA,CAAA;;KAEV,MAAM,CAAC,OAAO,CAAC,IAAI,EAAA,CAAA;;;IASD,eAAA,OAAO,CAAC,QAAQ,EAAA;UAC7B,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,IAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAA,KAAM,CAAC,EAAA;IACxF,EAAA,MAAA,KAAK,CAAC,4BAA4B,CAAA,CAAA;;;;WAItC,IAAI,EAAA,CAAA;;IAEJ,CAAA,MAAA,IAAI,GAAI,CAAA,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAK,IAAA,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,QAAA,CAAA;;;YAE5C,QAAQ,GAAA,EAAA,GACP,OAAO,CAAC,KAAA,EAAA,CAAA;IAER,EAAA,OAAA,QAAQ,CAAC,6BAA6B,CAAA,CAAA;IACtC,EAAA,OAAA,QAAQ,CAAC,6BAA6B,CAAA,CAAA;MAC7C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAA,CAAA;aAElD,CAAC,EAAA;;MAEJ,OAAO,CAAC,IAAI,CAAC,0KAA0K,CAAA,CAAA;;;;IAI3L,CAAA,MAAM,CAAC,aAAa,CAAK,IAAA,KAAK,CAAC,YAAY,CAAA,CAAA,CAAA;;;aAsB/B,IAAI,CAAC,IAAI,EAAE,IAAI,EAAA;KAC3B,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA,CAAA;;;UAGf,IAAI,IAAA,CAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAA,IAAM,GAAG,EAAA;IACrD,EAAA,MAAA,KAAK,CAAC,8CAA8C,CAAA,CAAA;;;KAG9D,UAAU,CAAC,IAAI,EAAE,IAAI,CAAA,CAAA;;;IAGjB,EAAA,MAAM,CAAC,OAAO,EAAA;OACV,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA,CAAA;OAC1B,UAAU,CAAC,IAAI,EAAE,OAAO,CAAA,CAAA;;;;;IAUpB,SAAA,aAAa,CAAC,KAAK,EAAA;;SAE3B,KAAK,EAAA;MACL,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,2BAA2B,CAAA,CAAA;;;IAIpF,EAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAA,CAAA;;;;;aAKnB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAA;SACtB,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA,CAAA;;;IAG5C,CAAA,IAAA,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,EAAA;;MAE7B,IAAI,GAAG,GAAG,GAAG,IAAA,CAAA;IAEP,EAAA,MAAA,IAAA,CAAA,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAA;YACnD,KAAK,CAAC,sCAAsC,GAAG,IAAI,CAAA,CAAA;;;IAG7D,CAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAA,CAAA;;IAC9B,CAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAG,KAAK,IAAA;;IAEjC,EAAA,KAAK,CAAC,cAAc,EAAA,CAAA;;IACf,EAAA,IAAA,CAAA,IAAI,CAAC,QAAQ,EAAA;IACd,GAAA,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAA,CAAA,CAAA;;;;;;IAMpE,SAAA,QAAQ,CAAC,GAAG,EAAA;SACb,GAAG,IAAA,OAAW,GAAG,IAAI,QAAQ,EAAA;IAEzB,EAAA,OAAA,EAAA,IAAI,EAAE,GAAA,EAAA,CAAA;;aAIH,GAAG,IAAA,EAAA,CAAA;;;;;;;;;;IAUT,SAAA,yBAAyB,CAAC,IAAI,EAAA;;IAEnC,CAAA,OAAO,CAAC,YAAY;;IAAK,GAAA,GAAA,OAAO,CAAC,KAAK;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;OAAE,2BAA2B,EAAE,MAAM,CAAC,OAAO;;MAAG,SAAS;;;;IAE5I,CAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAA,CAAA;;;;;;WAsChB,MAAM,GAAA,EAAA,EAAA,GAAA,OAAA,CAAA;IAKN,CAAA,IAAA,EAAA,MAAM,GAAG,EAAC,EAAA,GAAA,OAAA,CAAA;IAMV,CAAA,IAAA,EAAA,kBAAkB,GAAG,KAAA,EAAA,GAAA,OAAA,CAAA;;;;;WAK1B,SAAS,CAAA;;;;;;;MAOX,WAAW,CAAC,IAAI,EAAE,SAAS,EAAA;IAClB,GAAA,IAAA,CAAA,SAAS,IAAY,OAAA,SAAS,IAAI,UAAU,KAAY,OAAA,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC,gBAAgB,KAAK,IAAI,CAAA,EAAA;IAC/G,IAAA,MAAA,KAAK,CAAC,0BAA0B,CAAA,CAAA;;;;IAIrC,GAAA,IAAA,CAAA,IAAI,IACG,OAAA,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAK,IAAA,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA,IAAK,GAAG,CAAA,IAAA,OACvF,IAAI,IAAI,QAAQ,IAAM,EAAA,IAAI,YAAY,MAAM,CAAA,EAAA;IAE9C,IAAA,MAAA,KAAK,CAAC,oEAAoE,CAAA,CAAA;;;IAG7E,GAAA,MAAA,EAAA,OAAO,EAAE,IAAI,EAAI,GAAAF,OAAK,CAAC,IAAI,CAAA,CAAA;OAElC,IAAI,CAAC,IAAI,GAAG,IAAA,CAAA;;;IAGD,GAAA,IAAA,OAAA,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC,gBAAgB,KAAK,IAAI,EAAA;IACnE,IAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAA,CAAA;IAC3B,IAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,IAAA,EAAA,CAAA;IACtC,IAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAA,CAAA;IAC1B,IAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAA,EAAA,CAAA;;;IAI5B,IAAA,IAAI,CAAC,SAAS,GAAA,MAAS,OAAO,CAAC,OAAO,CAAC,SAAS,CAAA,CAAA;;IAChD,IAAA,IAAI,CAAC,UAAU,GAAA,EAAA,CAAA;IACf,IAAA,IAAI,CAAC,KAAK,GAAA,EAAA,CAAA;;;OAGd,IAAI,CAAC,QAAQ,GAAG,OAAA,CAAA;OAChB,IAAI,CAAC,KAAK,GAAG,IAAA,CAAA;;;;;;;;;;;IAWjB,EAAA,KAAK,CAAC,IAAI,EAAA;;;WAGF,MAAM,EAAA;IACK,IAAA,IAAA,OAAA,MAAM,IAAI,QAAQ,EAAA;aACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA,EAAA;UACtB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAA,IAAK,GAAE,CAAA;;iBAGhC,IAAA,CAAA;;IAGN,KAAA,MAAA,IAAA,MAAM,YAAY,MAAM,EAAA;IACvB,KAAA,MAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA,CAAA;;aAC3B,KAAK,IAAI,KAAK,CAAC,CAAC,CAAA,EAAA;UAChB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA,CAAE,MAAM,CAAA,IAAK,GAAE,CAAA;;iBAGlC,IAAA,CAAA;;;;;;IAMb,GAAA,MAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAA,CAAA;;IACnC,GAAA,IAAA,OAAO,KAAK,IAAI,EAAA;eACT,IAAA,CAAA;;;;WAIP,IAAI,CAAC,KAAK,KAAK,KAAK,EAAA;eACb,OAAA,CAAA;;;aAGL,GAAG,GAAA,EAAA,CAAA;IACL,GAAA,IAAA,CAAC,GAAG,CAAA,CAAA;;IACD,GAAA,OAAA,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAA;;;IAGpB,KAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAK,CAAA,GAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAK,IAAA,EAAE,KAAK,IAAA,CAAA;gBAE9D,CAAC,EAAA;IACJ,KAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAA,CAAA;;;QAEzB,CAAC,EAAA,CAAA;;;cAEE,GAAA,CAAA;;;;;;;;;;;;;;;;;;;IAoBL,EAAA,MAAA,eAAe,CAAC,MAAM,EAAA;gBACf,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAA,EAAA;IAC7B,IAAA,IAAA,CAAA,MAAA,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAA,EAAA;gBAC1B,KAAA,CAAA;;;;cAIR,IAAA,CAAA;;;;;WAKT,UAAU,GAAA,EAAA,CAAA;;IACZ,CAAA,IAAA,MAAM,YAAY,GAAG,EAAA;;IAErB,EAAA,MAAM,CAAC,OAAO,CAAE,CAAA,KAAK,EAAE,IAAI,KAAA;IACvB,GAAA,UAAU,CAAC,IAAI,CAAA,IAAK,SAAS,CAAC,IAAI,EAAE,KAAK,CAAA,CAAA,CAAA;;;;IAK7C,EAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA,OAAO,CAAE,IAAI,IAAA;OAC7B,UAAU,CAAC,IAAI,CAAK,IAAA,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAA,CAAA,CAAA,CAAA;;;;;IAKnD,CAAA,IAAA,SAAS,GAAG,IAAA,CAAA;;IACZ,CAAA,IAAA,eAAe,GAAG,IAAA,CAAA;SAClB,KAAK,GAAA,EAAA,CAAA;;;IAGH,CAAA,MAAA,QAAQ,GAAG,qBAAqB,EAAA,CAAA;;;oBAGvB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAA;;YAElC,IAAI,EAAA,CAAA;;MACV,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA,CAAA;;;;IAIrB,CAAA,IAAA,mBAAmB,GAAG,IAAA,CAAA;;IAItB,CAAA,IAAA,eAAe,GAAG,IAAA,CAAA;;SAClB,kBAAkB,EAAA;IAClB,EAAA,eAAe,GAAI,KAAK,IAAA;;;;IAIhB,GAAA,IAAA,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,2BAA2B,IAAI,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAA,EAAA;QAClG,mBAAmB,GAAG,KAAK,CAAC,KAAA,CAAA;;IAG5B,IAAA,mBAAmB,GAAG,IAAA,CAAA;;;;;IAI9B,EAAA,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,CAAA,CAAA;;MAEnD,WAAW,CAAA,MAAA;IACP,GAAA,aAAa,CAAC,mBAAmB,CAAA,CAAA;;;;;IAKrC,CAAA,IAAA,OAAO,GAAG,IAAA,CAAA;;;IAGV,CAAA,IAAA,YAAY,GAAG,IAAA,CAAA;;;;;IAKb,CAAA,MAAA,cAAc,GAAG,GAAG,CAAC,SAAS,OAAQ,MAAM,IAAA;IAC9C,EAAA,OAAO,GAAG,MAAA,CAAA;;;IAGN,EAAA,IAAA,CAAC,GAAG,CAAA,CAAA;;aACD,CAAC,GAAG,UAAU,CAAC,MAAM,EAAA;aAClB,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA,CAAA;;YAC5C,KAAK,EAAA;QACN,CAAC,EAAA,CAAA;;;;aAIC,MAAM,GAAA;IACR,IAAA,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,IAAA,QAAQ,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ;IAChC,IAAA,MAAM,EAAG,KAAK,IAAW,OAAA,KAAK,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;UAAI,KAAK;UAAG,IAAA;;;;IAI3E,GAAA,IAAA,CAAA,MAAA,UAAU,CAAC,CAAC,CAAE,CAAA,eAAe,CAAC,MAAM,CAAA,EAAA;;IAE5C,IAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAA,CAAA,CAAA;;IACZ,IAAA,YAAY,GAAG,IAAA,CAAA;;;QAEf,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,CAAA,CAAA;;;;;;;IAM/C,GAAA,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,CAAA,CAAA,CAAA;;;IAGnD,GAAA,MAAA,GAAG,GAAG,UAAU,CAAC,CAAC,EAAE,SAAA,CAAA;;;IAEtB,GAAA,IAAA,YAAY,IAAI,GAAG,EAAA;IACf,IAAA,IAAA,GAAG,CAAC,OAAO,EAAA;yBACX,SAAS,GAAG,GAAG,CAAC,OAAA,CAAA,CAAA;IAChB,KAAA,YAAY,GAAG,GAAA,CAAA;yBACf,eAAe,GAAG,GAAG,CAAC,aAAA,CAAA,CAAA;yBACtB,KAAK,GAAA,EAAA,CAAA,CAAA;;;;IAIL,KAAA,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,EAAA;UACzC,SAAS;UACpB,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,MAAA,MAAM,EAAE,eAAA;;;IAIZ,KAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAA,CAAA,CAAA;IACZ,KAAA,YAAY,GAAG,IAAA,CAAA;;;;IAIb,IAAA,MAAA,MAAM,SAAS,GAAG,EAAA,CAAA;;;IAGpB,IAAA,IAAA,MAAM,IAAI,OAAO,EAAA;;;;;;IAMrB,IAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAI,MAAM,IAAI,MAAM,CAAC,OAAO,IAAK,MAAA,CAAA,CAAA;;IAC1C,IAAA,YAAY,GAAG,GAAA,CAAA;;;;;WAKf,KAAK,IAAA,OAAW,KAAK,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAA,CAAE,MAAM,EAAA;IAC9D,IAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAA,CAAA,CAAA;;IAGlB,IAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAA,CAAA,CAAA;;;;IAItB,GAAA,YAAA,CAAA,CAAA,EAAA,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,KAAA,CAAA,CAAA;;;;IAItB,GAAA,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,EAAA;QACzC,SAAS;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,IAAA,MAAM,EAAE,eAAA;WACR,IAAI,CAAA,MAAA;QACJ,MAAM,CAAC,GAAG,CAAC,eAAe,CAAA,CAAA;;;;;;;IAMlC,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAA,CAAA,CAAA;;IACZ,EAAA,YAAY,GAAG,IAAA,CAAA;MACf,MAAM,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;;KAGxB,SAAS,CAAA,MAAA;MACL,cAAc,EAAA,CAAA;IACd,EAAA,eAAe,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAtI1E,OAAO,CAAC,iBAAiB,GAAG,kBAAkB,GAAG,QAAQ,GAAG,MAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCldpE,UAAqB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACrB,UAAmC,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OAEnC,UAA2B,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OAC3B,UAEG,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;OADC,UAAsB,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICN1B;IACA,MAAM,KAAK,GAAG,GAAE;AAChB;IACA;IACA,IAAIE,WAAQ;AACZ;IACA;IACA,SAAS,WAAW,CAAC,EAAE,EAAE;IACzB,IAAI,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAACA,UAAQ,EAAC;IACrD,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,eAAe,EAAC;IACpD,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,eAAe,EAAC;IAC7D,CAAC;AACD;IACA,SAAS,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE;IACjD,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;IAClD,QAAQ,IAAI,CAAC,GAAG,EAAE;IAClB,YAAY,MAAM;IAClB,SAAS;IACT;IACA,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAC;AACrC;IACA;IACA,QAAQ,IAAI,SAAS,EAAE;IACvB,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAC;IACtC,SAAS;IACT,KAAK,EAAC;IACN,CAAC;AACD;IACA;IACA,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK;IACzB;IACA,IAAIA,UAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,WAAW,GAAG,EAAE,EAAC;AAClF;IACA;IACA,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAC;IAC1B,CAAC;;;;;;;;;;;;;;;;;;;;;OCLK,UAAqE,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAFrE,UAA8D,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAD3D,EAAA,kBAAA,GAAS,QAAK,UAAU,EAAA,OAAAC,iBAAA,CAAA;IAEnB,EAAA,kBAAA,GAAS,QAAK,UAAU,EAAA,OAAAC,mBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OATtC,UAqBQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;OApBN,UAAmF,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;;OACnF,UAAmB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAiBK,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;OAhBN,UAAqD,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACrD,UAA8D,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAC9D,UAA2D,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;;;OAWxD,UAAmE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACnE,UAAqD,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACrD,UAAoD,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;4DAAlC,GAAiB,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAjCjC,iBAAiB,GAAA,YAAA;IACb,EAAA,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CACtE,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAE,MAAM,EAAA,CAAA;;MAIf,IAAI,CAAA,MAAQ,IAAI,CAAC,GAAG,CAAA,CAAA,CAAA;;MACvB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;;;;;;;;;IAQmC,CAAA,MAAA,aAAA,GAAA,MAAA,IAAI,CAAC,GAAG,CAAA,CAAA;IAGxD,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,OAAO,CAAA,CAAA;IACZ,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,YAAY,CAAA,CAAA;IACjB,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,UAAU,CAAA,CAAA;IAEV,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,UAAU,CAAA,CAAA;IAEf,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,mBAAmB,CAAA,CAAA;IAO1B,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,kBAAkB,CAAA,CAAA;IACvB,CAAA,MAAA,eAAA,GAAA,MAAA,IAAI,CAAC,OAAO,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICwCd,CAAA,IAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;8BAuBvB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA;;;;;8BAChB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA;;;;;8BACrB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;;8BACpB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;;iBAzBd,eAChB,CAAA,CAAA;;;;;;;;;;;;;;;0BAgB8B,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;kBAK/B,SAAO,CAAA,CAAA;;;;kBACP,aAAW,CAAA,CAAA;;;;kBACX,UAAQ,CAAA,CAAA;;;;kBACR,SAAO,CAAA,CAAA;;;8DA3Bc,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHlC,UAgCM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OA7BJ,UAA0D,CAAA,IAAA,EAAA,GAAA,CAAA,CAAA;;OAC1D,UAA0C,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAC1C,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAlBH,UAiBM,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;OAhBJ,UAIM,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA;OADL,UAAiW,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;OAGnW,UAIM,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA;OADL,UAAiW,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;OAGnW,UAIM,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA;OADL,UAAiW,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;OAGnW,UAAuC,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;OAG3C,UAMS,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;OALP,UAAwB,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;OACxB,UAAmC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;OACnC,UAAqC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;OACrC,UAAmC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;OACnC,UAAkC,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA;;;;;sFA3BV,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA;;;;IACT,GAAA,IAAA,KAAA,YAAA,CAAA,IAAA,QAAA,MAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;yDAkBJ,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;qEAKvB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;qEAChB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;qEACrB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;qEACpB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IA/B7B,CAAA,IAAA,QAAA,YAAA,GAAI,QAAK,SAAS,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;OADzB,UAoCK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;IAnCE,GAAA,aAAA,GAAI,QAAK,SAAS,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAvEZ,IAAI,EAAA,GAAA,OAAA,CAAA;WACJ,OAAO,EAAA,GAAA,OAAA,CAAA;IACd,CAAA,IAAA,IAAI,GAAG,EAAE,CAAA;SACT,MAAM,CAAA;;KAGV,OAAO,CAAA,YAAA;;UAED,OAAO,EAAA;IACH,GAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC5G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,IAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,IAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACF,IAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,IAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;IAchB,CAAA,IAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAA;IAC9B,EAAA,IAAI,GAAG,kBAAkB,CAAA;IAChB,EAAA,MAAA,IAAA,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,EAAA;IACvC,EAAA,IAAI,GAAG,iBAAiB,CAAA;;IAExB,EAAA,IAAI,GAAG,kBAAkB,CAAA;;;;IAMvB,CAAA,IAAA,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;;IAExB,CAAA,MAAA,IAAI,IAAI,GAAG,EAAE,GAAG,KACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,CAAA;;;IAG7C,CAAA,MAAA,OAAO,GAAI,IAAI,IAAA;;UAEf,IAAI,EAAA;OACN,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAA,CAAA,EAAK,IAAI,CAAA,CAAE,EAAE,EAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OACtD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAA,CAAA,EAAK,IAAI,CAAA,CAAE,EAAE,EAAE,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAEpD,GAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAA;IAC7B,GAAA,IAAI,CAAC,YAAY,CAAA;IACjB,GAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAA;;;;;SAKzB,KAAK,GAAA,EAAA,CAAA;;IAEA,CAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAA,EAAA;MACtB,UAAU;;QACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA,CAAA,CAAA;IAEf,IAAA,WAAW,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAA,CAAA;;OACxC,KAAK,EAAA,IAAM,QAAQ,GAAG,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;IAeL,GAAA,KAAK,CAAC,CAAC,CAAA,GAAA,OAAA,CAAA;;;;;;;IAKP,GAAA,KAAK,CAAC,CAAC,CAAA,GAAA,OAAA,CAAA;;;;;;;IAKP,GAAA,KAAK,CAAC,CAAC,CAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCvFhC,UAmBK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAlBJ,UAAyB,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;OACzB,UAAiE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACjE,UAAgE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChE,UAAgE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChE,UAA+D,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAC/D,UAAoE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACpE,UAAoE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACpE,UAAqE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACrE,UAAkE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAClE,UAAgE,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChE,UAG6B,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAC7B,UAG6B,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAvBlB,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;WACX,OAAO,GAAA,EAAA,EAAA,GAAA,OAAA,CAAA;;;;;;;;IAMW,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,OAAO,CAAA,CAAA;;;;IAChB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;IACf,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;IACf,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,KAAK,CAAA,CAAA;;;;IACd,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,UAAU,CAAA,CAAA;;;;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,UAAU,CAAA,CAAA;;;;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,WAAW,CAAA,CAAA;;;;IACpB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,QAAQ,CAAA,CAAA;;;;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;sBAE3C,OAAO,GAAA,CAAI,UAAU,EAAE,UAAU,CAAA,CAAA,CAAA;IACjC,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;sBAGf,OAAO,GAAA,CAAI,UAAU,EAAE,UAAU,CAAA,CAAA,CAAA;IACjC,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,MAAM,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEChBJ,GAAM,CAAA,CAAA,CAAA,GAAA,WAAA,GAAA,gBAAA,CAAA,CAAA,CAAA;oDAAsC,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;OAA9D,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;uGAFQ,GAAM,CAAA,CAAA,CAAA,GAAA,WAAA,GAAA,gBAAA,CAAA,CAAA,EAAA;;;;;qDAAsC,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WALlD,KAAK,EAAA,GAAA,OAAA,CAAA;WACL,MAAM,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CCuB0C,GAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;uFAAS,GAAQ,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,CAAA;;;;;;;OAArF,UAEQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;OADP,UAAmB,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;uDADF,GAAa,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;IAAY,OAAA,IAAA,WAAA,cAAA,GAAQ,mBAAR,GAAQ,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAAS,GAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;;;+HAAS,GAAQ,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAZzE,CAAA,IAAA,EAAA,QAAQ,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACb,CAAA,IAAA,EAAA,QAAQ,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACb,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,UAAU,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACf,CAAA,IAAA,EAAA,QAAQ,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;cAEf,aAAa,GAAA;IACrB,EAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCbiC,MAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHD,UAIK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WARO,MAAM,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOsD,UAEvE,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG+D,KAE/D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAfD,UAuCK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OArBJ,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAlBJ,UAAwC,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACxC,UAgBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAfJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAoD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA1B5C,MAAM,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BCGA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;uEADA,GAAI,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA;;;;;;;OAA1B,UAGK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAFJ,UAAyB,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;OACzB,UAA+B,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;qEADd,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;2GADA,GAAI,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAJd,IAAI,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICFhB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;IAC5B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;IACzC,IAAI,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;;ICX5D,MAAME,gBAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC7E,MAAMC,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE;IACA,MAAMC,QAAM,GAAG,GAAG,IAAI;IACtB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IACnD,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,QAAQ,KAAK;IACnE,IAAI,IAAIF,gBAAc,IAAI,IAAI,YAAY,IAAI,EAAE;IAChD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,SAAS;IACT,KAAK;IACL,SAAS,IAAIC,uBAAqB;IAClC,SAAS,IAAI,YAAY,WAAW,IAAIC,QAAM,CAAC,IAAI,CAAC,CAAC,EAAE;IACvD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClE,SAAS;IACT,KAAK;IACL;IACA,IAAI,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;IAC/C,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,GAAG,YAAY;IACpC,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC;IACN,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;;ICvCD,MAAM,KAAK,GAAG,kEAAkE,CAAC;IACjF;IACA,MAAMC,QAAM,GAAG,OAAO,UAAU,KAAK,WAAW,GAAG,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvC,IAAIA,QAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAiBM,MAAMC,QAAM,GAAG,CAAC,MAAM,KAAK;IAClC,IAAI,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACnH,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC3C,QAAQ,YAAY,EAAE,CAAC;IACvB,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC/C,YAAY,YAAY,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL,IAAI,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3F,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;IACjC,QAAQ,QAAQ,GAAGD,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IACvD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,EAAE,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC9D,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC7D,KAAK;IACL,IAAI,OAAO,WAAW,CAAC;IACvB,CAAC;;ICvCD,MAAMF,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,UAAU,KAAK;IACpD,IAAI,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;IAC3C,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC;IACtD,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;IACtB,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IAC5E,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,UAAU,EAAE;IACrB,QAAQ,OAAO,YAAY,CAAC;IAC5B,KAAK;IACL,IAAI,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC;IACnC,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,YAAY,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,SAAS,CAAC;IACV,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACjD,IAAI,IAAIA,uBAAqB,EAAE;IAC/B,QAAQ,MAAM,OAAO,GAAGG,QAAM,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,OAAO,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtC,KAAK;IACL,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACxC,IAAI,QAAQ,UAAU;IACtB,QAAQ,KAAK,MAAM;IACnB,YAAY,OAAO,IAAI,YAAY,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACzE,QAAQ,KAAK,aAAa,CAAC;IAC3B,QAAQ;IACR,YAAY,OAAO,IAAI,CAAC;IACxB,KAAK;IACL,CAAC;;IC7CD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK;IAC7C;IACA,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,IAAI,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;IACnC;IACA,QAAQ,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,IAAI;IACrD,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;IAC9C,YAAY,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE;IACpC,gBAAgB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,aAAa;IACb,SAAS,CAAC,CAAC;IACX,KAAK,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,UAAU,KAAK;IACtD,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACpD,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1E,QAAQ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,QAAQ,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE;IAC5C,YAAY,MAAM;IAClB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IACK,MAAMC,UAAQ,GAAG,CAAC;;IC9BzB;IACA;IACA;IACA;IACA;AACA;IACO,SAAS,OAAO,CAAC,GAAG,EAAE;IAC7B,EAAE,IAAI,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,KAAK,CAAC,GAAG,EAAE;IACpB,EAAE,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;IACrC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,EAAE;IACpB,OAAO,CAAC,SAAS,CAAC,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IACxD,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE;IACpE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC5C,EAAE,SAAS,EAAE,GAAG;IAChB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9B,GAAG;AACH;IACA,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrB,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,GAAG;IACrB,OAAO,CAAC,SAAS,CAAC,cAAc;IAChC,OAAO,CAAC,SAAS,CAAC,kBAAkB;IACpC,OAAO,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC3D,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC/C,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC;AAC9B;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,EAAE,CAAC;IACT,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;IACnC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM;IACZ,KAAK;IACL,GAAG;AACH;IACA;IACA;IACA,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAC9B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,CAAC;IACxC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAC/C;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,GAAG;AACH;IACA,EAAE,IAAI,SAAS,EAAE;IACjB,IAAI,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;IAC1D,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AACxD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,CAAC;IAC7C,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,CAAC;IAChD,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;;ICxKM,MAAM,cAAc,GAAG,CAAC,MAAM;IACrC,IAAI,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,SAAS,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC5C,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;IACzC,KAAK;IACL,CAAC,GAAG;;ICTG,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE;IACnC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;IACnC,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IACD;IACA,MAAM,kBAAkB,GAAG,UAAU,CAAC;IACtC,MAAM,oBAAoB,GAAG,YAAY,CAAC;IACnC,SAAS,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE;IACjD,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;IAC9B,QAAQ,GAAG,CAAC,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAACC,cAAU,CAAC,CAAC;IAC/D,QAAQ,GAAG,CAAC,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACnE,KAAK;IACL,SAAS;IACT,QAAQ,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACvD,QAAQ,GAAG,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IAC3D,KAAK;IACL,CAAC;IACD;IACA,MAAM,eAAe,GAAG,IAAI,CAAC;IAC7B;IACO,SAAS,UAAU,CAAC,GAAG,EAAE;IAChC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK;IACL;IACA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC;IACrE,CAAC;IACD,SAAS,UAAU,CAAC,GAAG,EAAE;IACzB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAChD,QAAQ,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,QAAQ,IAAI,CAAC,GAAG,IAAI,EAAE;IACtB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,KAAK,EAAE;IAC5B,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE;IAC5C,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa;IACb,YAAY,CAAC,EAAE,CAAC;IAChB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB;;IChDA,MAAM,cAAc,SAAS,KAAK,CAAC;IACnC,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC9C,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACvC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IACrC,KAAK;IACL,CAAC;IACM,MAAM,SAAS,SAAS,OAAO,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC1C,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,IAAI,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE;IACpE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,SAGS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACnC,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,KAAK;IACL;;ICnHA;IAEA,MAAM,QAAQ,GAAG,kEAAkE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC;IACrH,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAC1B;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAASC,QAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;IACrB,IAAI,GAAG;IACP,QAAQ,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IACnD,QAAQ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;IACvC,KAAK,QAAQ,GAAG,GAAG,CAAC,EAAE;IACtB,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC;IAeD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,KAAK,GAAG;IACxB,IAAI,MAAM,GAAG,GAAGA,QAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,KAAK,IAAI;IACpB,QAAQ,OAAO,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC;IACpC,IAAI,OAAO,GAAG,GAAG,GAAG,GAAGA,QAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD;IACA;IACA;IACA,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;IACtB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;;ICjDxB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;IACvB,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,CAAC,MAAM;IAC1B,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC3B,YAAY,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,SAAS;IACT,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,EAAE,EAAE;IAC3B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAClD,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,QAAQ,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf;;ICjCA;IACA,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI;IACJ,IAAI,KAAK,GAAG,OAAO,cAAc,KAAK,WAAW;IACjD,QAAQ,iBAAiB,IAAI,IAAI,cAAc,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,EAAE;IACZ;IACA;IACA,CAAC;IACM,MAAM,OAAO,GAAG,KAAK;;ICV5B;IAGO,SAAS,GAAG,CAAC,IAAI,EAAE;IAC1B,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC;IACA,IAAI,IAAI;IACR,QAAQ,IAAI,WAAW,KAAK,OAAO,cAAc,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE;IAC5E,YAAY,OAAO,IAAI,cAAc,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL,IAAI,OAAO,CAAC,EAAE,GAAG;IACjB,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAID,cAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9F,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,GAAG;IACrB,KAAK;IACL;;ICVA,SAAS,KAAK,GAAG,GAAG;IACpB,MAAM,OAAO,GAAG,CAAC,YAAY;IAC7B,IAAI,MAAM,GAAG,GAAG,IAAIE,GAAc,CAAC;IACnC,QAAQ,OAAO,EAAE,KAAK;IACtB,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC;IACpC,CAAC,GAAG,CAAC;IACE,MAAM,OAAO,SAAS,SAAS,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,MAAM,KAAK,GAAG,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACzD,YAAY,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,EAAE;IACvB,gBAAgB,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5C,aAAa;IACb,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,CAAC,OAAO,QAAQ,KAAK,WAAW;IAChD,oBAAoB,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;IACvD,oBAAoB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACvC,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IAC5C,SAAS;IACT;IACA;IACA;IACA,QAAQ,MAAM,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;IACrD,QAAQ,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC;IACtD,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,SAAS,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC,YAAY,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC;IACV,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC5C,YAAY,IAAI,KAAK,GAAG,CAAC,CAAC;IAC1B,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;IAC9B,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY;IACtD,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChC,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY;IAC/C,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IAC5B,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI;IACnC;IACA,YAAY,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;IACzE,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B,aAAa;IACb;IACA,YAAY,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE;IACzC,gBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,CAAC;IAChF,gBAAgB,OAAO,KAAK,CAAC;IAC7B,aAAa;IACb;IACA,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS,CAAC;IACV;IACA,QAAQ,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtE;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC1C;IACA,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC9C,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IAC5C,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,aAEa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS,CAAC;IACV,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,aAAa;IACb;IACA;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,aAAa,CAAC,OAAO,EAAE,IAAI,IAAI;IACvC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;IACrC,gBAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,aAAa,CAAC,CAAC;IACf,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3D,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACnD,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;IAChD,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAClE,iBAAiB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACvE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE;IACvB,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;IACtB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC,YAAY,MAAM,EAAE,MAAM;IAC1B,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC,CAAC;IACX,QAAQ,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9B,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACnC,QAAQ,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IAC3B,KAAK;IACL,CAAC;IACM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IAC3C,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAC/D,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACtI,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAIA,GAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,QAAQ,IAAI;IACZ,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,YAAY,IAAI;IAChB,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC5C,oBAAoB,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACjF,oBAAoB,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC1D,wBAAwB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACtE,4BAA4B,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,yBAAyB;IACzB,qBAAqB;IACrB,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;IACxC,gBAAgB,IAAI;IACpB,oBAAoB,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IACrF,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE,GAAG;IAC7B,aAAa;IACb,YAAY,IAAI;IAChB,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB;IACA,YAAY,IAAI,iBAAiB,IAAI,GAAG,EAAE;IAC1C,gBAAgB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IAChE,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAC1C,gBAAgB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IACvD,aAAa;IACb,YAAY,GAAG,CAAC,kBAAkB,GAAG,MAAM;IAC3C,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,UAAU;IACxC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE;IAC/D,oBAAoB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClC,iBAAiB;IACjB,qBAAqB;IACrB;IACA;IACA,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM;IAC5C,wBAAwB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtF,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAC1B,iBAAiB;IACjB,aAAa,CAAC;IACd,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB;IACA;IACA;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACjD,YAAY,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,SAAS,EAAE;IACvB,QAAQ,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE;IAClE,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAC5C,QAAQ,IAAI,SAAS,EAAE;IACvB,YAAY,IAAI;IAChB,gBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACjC,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;IAC3C,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;IAC3B,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,YAAY,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,KAAK;IACL,CAAC;IACD,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;IACtB;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IACrC;IACA,IAAI,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;IAC3C;IACA,QAAQ,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC/C,KAAK;IACL,SAAS,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACrD,QAAQ,MAAM,gBAAgB,GAAG,YAAY,IAAIF,cAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IACpF,QAAQ,gBAAgB,CAAC,gBAAgB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IACjE,KAAK;IACL,CAAC;IACD,SAAS,aAAa,GAAG;IACzB,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE;IACpC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IAChD,YAAY,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL;;ICjZO,MAAM,QAAQ,GAAG,CAAC,MAAM;IAC/B,IAAI,MAAM,kBAAkB,GAAG,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC;IACtG,IAAI,IAAI,kBAAkB,EAAE;IAC5B,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,EAAE,YAAY,KAAK,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,KAAK;IACL,CAAC,GAAG,CAAC;IACE,MAAMG,WAAS,GAAGH,cAAU,CAAC,SAAS,IAAIA,cAAU,CAAC,YAAY,CAAC;IAClE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IACnC,MAAM,iBAAiB,GAAG,aAAa;;ICN9C;IACA,MAAM,aAAa,GAAG,OAAO,SAAS,KAAK,WAAW;IACtD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;IACzC,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC;IAC/C,MAAM,EAAE,SAAS,SAAS,CAAC;IAClC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;IAC3B;IACA,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C;IACA,QAAQ,MAAM,IAAI,GAAG,aAAa;IAClC,cAAc,EAAE;IAChB,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACnO,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IACpC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAClD,SAAS;IACT,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,qBAAqB,IAAI,CAAC,aAAa;IACvD,sBAAsB,SAAS;IAC/B,0BAA0B,IAAIG,WAAS,CAAC,GAAG,EAAE,SAAS,CAAC;IACvD,0BAA0B,IAAIA,WAAS,CAAC,GAAG,CAAC;IAC5C,sBAAsB,IAAIA,WAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1D,SAAS;IACT,QAAQ,OAAO,GAAG,EAAE;IACpB,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,iBAAiB,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,iBAAiB,GAAG;IACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM;IAC/B,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACxC,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC;IACrD,YAAY,WAAW,EAAE,6BAA6B;IACtD,YAAY,OAAO,EAAE,UAAU;IAC/B,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAClE,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACjD,YAAY,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,YAAY,MAAM,UAAU,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,YAAY,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI;IAC9D;IACA,gBAAgB,MAAM,IAAI,GAAG,EAAE,CAAC;IAchC;IACA;IACA;IACA,gBAAgB,IAAI;IACpB,oBAAoB,IAAI,qBAAqB,EAAE;IAC/C;IACA,wBAAwB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,qBAGqB;IACrB,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,UAAU,EAAE;IAChC;IACA;IACA,oBAAoB,QAAQ,CAAC,MAAM;IACnC,wBAAwB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7C,wBAAwB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;IAC5C,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAC5B,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACvD,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAChE,iBAAiB,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACrE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAClC,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,CAAC,CAACA,WAAS,CAAC;IAC3B,KAAK;IACL;;ICzLO,MAAM,UAAU,GAAG;IAC1B,IAAI,SAAS,EAAE,EAAE;IACjB,IAAI,OAAO,EAAE,OAAO;IACpB,CAAC;;ICLD;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,EAAE,GAAG,yOAAyO,CAAC;IACrP,MAAM,KAAK,GAAG;IACd,IAAI,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IACjJ,CAAC,CAAC;IACK,SAAS,KAAK,CAAC,GAAG,EAAE;IAC3B,IAAI,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1G,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,KAAK;IACL,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;IACzB,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjF,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3F,QAAQ,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,KAAK;IACL,IAAI,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,IAAI,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD,SAAS,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;IACtD,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;IAC/B,QAAQ,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IACrE,QAAQ,IAAI,EAAE,EAAE;IAChB,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC1B,SAAS;IACT,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,CAAC;IAChB;;IC1CO,MAAMC,QAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE;IAChC,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,IAAI,CAAC;IACvB,SAAS;IACT,QAAQ,IAAI,GAAG,EAAE;IACjB,YAAY,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,YAAY,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;IACrC,YAAY,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC;IAC7E,YAAY,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACjC,YAAY,IAAI,GAAG,CAAC,KAAK;IACzB,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,SAAS;IACT,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE;IAC5B,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAClD,SAAS;IACT,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM;IACnB,YAAY,IAAI,IAAI,IAAI,CAAC,MAAM;IAC/B,kBAAkB,IAAI,CAAC,MAAM;IAC7B,kBAAkB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACpF,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,QAAQ;IACrB,YAAY,IAAI,CAAC,QAAQ;IACzB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;IACpF,QAAQ,IAAI,CAAC,IAAI;IACjB,YAAY,IAAI,CAAC,IAAI;IACrB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI;IACjE,sBAAsB,QAAQ,CAAC,IAAI;IACnC,sBAAsB,IAAI,CAAC,MAAM;IACjC,0BAA0B,KAAK;IAC/B,0BAA0B,IAAI,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtE,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,YAAY,IAAI,EAAE,YAAY;IAC9B,YAAY,KAAK,EAAE,KAAK;IACxB,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,OAAO,EAAE,IAAI;IACzB,YAAY,cAAc,EAAE,GAAG;IAC/B,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,kBAAkB,EAAE,IAAI;IACpC,YAAY,iBAAiB,EAAE;IAC/B,gBAAgB,SAAS,EAAE,IAAI;IAC/B,aAAa;IACb,YAAY,gBAAgB,EAAE,EAAE;IAChC,YAAY,mBAAmB,EAAE,IAAI;IACrC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACjE,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACvB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,QAAQ,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACpD,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;IAC/C;IACA;IACA;IACA,gBAAgB,IAAI,CAAC,yBAAyB,GAAG,MAAM;IACvD,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC;IACA,wBAAwB,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAC5D,wBAAwB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC/C,qBAAqB;IACrB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACxF,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;IAC/C,gBAAgB,IAAI,CAAC,oBAAoB,GAAG,MAAM;IAClD,oBAAoB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;IACpD,wBAAwB,WAAW,EAAE,yBAAyB;IAC9D,qBAAqB,CAAC,CAAC;IACvB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC9E,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,eAAe,CAAC,IAAI,EAAE;IAC1B,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD;IACA,QAAQ,KAAK,CAAC,GAAG,GAAGL,UAAQ,CAAC;IAC7B;IACA,QAAQ,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC/B;IACA,QAAQ,IAAI,IAAI,CAAC,EAAE;IACnB,YAAY,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IAChC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE;IACpF,YAAY,KAAK;IACjB,YAAY,MAAM,EAAE,IAAI;IACxB,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACnC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;IAC/B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;IAC3B,SAAS,CAAC,CAAC;IACX,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,SAAS,CAAC;IACtB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe;IACrC,YAAYK,QAAM,CAAC,qBAAqB;IACxC,YAAY,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;IACzD,YAAY,SAAS,GAAG,WAAW,CAAC;IACpC,SAAS;IACT,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;IAC/C;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACtE,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,aAAa;IACb,YAAY,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC;IACA,QAAQ,IAAI;IACZ,YAAY,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACpC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,SAAS,EAAE;IAC5B,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC;IACA,QAAQ,SAAS;IACjB,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,IAAI,EAAE;IAChB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI;IAC5C,gBAAgB,IAAI,MAAM;IAC1B,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC,IAAI,EAAE;IACjE,oBAAoB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1C,oBAAoB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,oBAAoB,IAAI,CAAC,SAAS;IAClC,wBAAwB,OAAO;IAC/B,oBAAoBA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC;IAClF,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM;IAC/C,wBAAwB,IAAI,MAAM;IAClC,4BAA4B,OAAO;IACnC,wBAAwB,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxD,4BAA4B,OAAO;IACnC,wBAAwB,OAAO,EAAE,CAAC;IAClC,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrD,wBAAwB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9D,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChE,wBAAwB,SAAS,GAAG,IAAI,CAAC;IACzC,wBAAwB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/C,wBAAwB,IAAI,CAAC,KAAK,EAAE,CAAC;IACrC,qBAAqB,CAAC,CAAC;IACvB,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACzD;IACA,oBAAoB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IACnD,oBAAoB,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC3D,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,QAAQ,SAAS,eAAe,GAAG;IACnC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB;IACA,YAAY,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,OAAO,EAAE,CAAC;IACtB,YAAY,SAAS,CAAC,KAAK,EAAE,CAAC;IAC9B,YAAY,SAAS,GAAG,IAAI,CAAC;IAC7B,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,GAAG,IAAI;IAC/B,YAAY,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;IAC3D;IACA,YAAY,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IAC7C,YAAY,eAAe,EAAE,CAAC;IAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrD,SAAS,CAAC;IACV,QAAQ,SAAS,gBAAgB,GAAG;IACpC,YAAY,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,SAAS,OAAO,GAAG;IAC3B,YAAY,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,SAAS;IACT;IACA,QAAQ,SAAS,SAAS,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;IACzD,gBAAgB,eAAe,EAAE,CAAC;IAClC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,MAAM;IAC9B,YAAY,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAChE,YAAY,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,QAAQ,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChD,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1C,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC3E,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB;IACA;IACA,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO;IAC7B,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IAClC,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC3C,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC/B,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,YAAY,QAAQ,MAAM,CAAC,IAAI;IAC/B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5C,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,OAAO;IAC5B,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1D;IACA,oBAAoB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3C,oBAAoB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,SAAS;IAC9B,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,oBAAoB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,aAAa;IACb,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7C,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3B,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,OAAO;IACnB,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,gBAAgB,GAAG;IACvB,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IACxD,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAC1C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACvD;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ;IACnC,YAAY,CAAC,IAAI,CAAC,SAAS;IAC3B,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC;IACA;IACA,YAAY,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAChD,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,GAAG;IACzB,QAAQ,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;IAC7C,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,sBAAsB,EAAE;IACrC,YAAY,OAAO,IAAI,CAAC,WAAW,CAAC;IACpC,SAAS;IACT,QAAQ,IAAI,WAAW,GAAG,CAAC,CAAC;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1D,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa;IACb,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;IACxD,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,aAAa;IACb,YAAY,WAAW,IAAI,CAAC,CAAC;IAC7B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IACxC,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,EAAE;IACxC,YAAY,EAAE,GAAG,IAAI,CAAC;IACtB,YAAY,IAAI,GAAG,SAAS,CAAC;IAC7B,SAAS;IACT,QAAQ,IAAI,UAAU,KAAK,OAAO,OAAO,EAAE;IAC3C,YAAY,EAAE,GAAG,OAAO,CAAC;IACzB,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3E,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAChC,QAAQ,OAAO,CAAC,QAAQ,GAAG,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,OAAO,EAAE,OAAO;IAC5B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,IAAI,EAAE;IACd,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC,SAAS,CAAC;IACV,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACtD,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS,CAAC;IACV,QAAQ,MAAM,cAAc,GAAG,MAAM;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACvD,SAAS,CAAC;IACV,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACzC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IACzC,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC,wBAAwB,cAAc,EAAE,CAAC;IACzC,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,KAAK,EAAE,CAAC;IAChC,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,iBAAiB,IAAI,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,KAAK,EAAE,CAAC;IACxB,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C;IACA,YAAY,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,YAAY,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;IAC3D,gBAAgB,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAC3F,gBAAgB,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACjF,aAAa;IACb;IACA,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC;IACA,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5D;IACA;IACA,YAAY,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAClC,YAAY,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACnC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,MAAM,gBAAgB,GAAG,EAAE,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,QAAQ,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,QAAQ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC3B,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,gBAAgB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,OAAO,gBAAgB,CAAC;IAChC,KAAK;IACL,CAAC;AACDA,YAAM,CAAC,QAAQ,GAAGL,UAAQ;;ICnkB1B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE;IACzC,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;IAClB;IACA,IAAI,GAAG,GAAG,GAAG,KAAK,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,IAAI,IAAI,GAAG;IACnB,QAAQ,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAC7C;IACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACvC,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;IACzC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;IACrC,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC9C,YAAY,IAAI,WAAW,KAAK,OAAO,GAAG,EAAE;IAC5C,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;IAChD,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;IACvC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,KAAK;IACL;IACA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;IACnB,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC9C,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5B,SAAS;IACT,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IACpD,YAAY,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IAC7B,SAAS;IACT,KAAK;IACL,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;IAC/B,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;IACxD;IACA,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACjE;IACA,IAAI,GAAG,CAAC,IAAI;IACZ,QAAQ,GAAG,CAAC,QAAQ;IACpB,YAAY,KAAK;IACjB,YAAY,IAAI;IAChB,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,OAAO,GAAG,CAAC;IACf;;IC1DA,MAAM,qBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK;IACxB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC3C,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D;IACA;IACA;IACA;IACA;IACO,SAAS,QAAQ,CAAC,GAAG,EAAE;IAC9B,IAAI,QAAQ,CAAC,qBAAqB,KAAK,GAAG,YAAY,WAAW,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACjF,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC;IAC/C,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC,EAAE;IACjD,CAAC;IACM,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;IACvC,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACzC,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACpD,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IACnC,gBAAgB,OAAO,IAAI,CAAC;IAC5B,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;IACvB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,GAAG,CAAC,MAAM;IAClB,QAAQ,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;IACxC,QAAQ,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAChC,QAAQ,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;IAC3B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IACnF,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB;;IChDA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE;IAC1C,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IACnC,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC;IACxB,IAAI,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;IACxB,QAAQ,MAAM,WAAW,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACxE,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9D,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;IAClE,QAAQ,MAAM,OAAO,GAAG,EAAE,CAAC;IAC3B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IACnD,IAAI,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;IACnC,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;IAC5C,QAAQ,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;IACzD,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC;IACzB,YAAY,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,QAAQ,IAAI,YAAY,EAAE;IAC1B,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnD,SAAS;IACT,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,SAAS;IACT,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACvC,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB;;IC/EA;IACA;IACA;IACA;IACA;IACO,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,CAAC;IACtB,CAAC,UAAU,UAAU,EAAE;IACvB,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IAClD,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;IAClE,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;IAChE,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IACpC;IACA;IACA;IACO,MAAM,OAAO,CAAC;IACrB;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,QAAQ,EAAE;IAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE;IAChB,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,GAAG,EAAE;IAC1E,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;IAChC,gBAAgB,GAAG,CAAC,IAAI;IACxB,oBAAoB,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK;IACjD,0BAA0B,UAAU,CAAC,YAAY;IACjD,0BAA0B,UAAU,CAAC,UAAU,CAAC;IAChD,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB;IACA,QAAQ,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAChD,YAAY,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAChD,YAAY,GAAG,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IACzC,SAAS;IACT;IACA;IACA,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE;IACxC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IACjC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE;IAC5B,YAAY,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;IAC9B,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB,QAAQ,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChE,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IAC/C,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACO,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,OAAO,EAAE;IACzB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,GAAG,EAAE;IACb,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACrC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;IACpC,gBAAgB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACnF,aAAa;IACb,YAAY,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IACvD,gBAAgB,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IACvD;IACA,gBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrE;IACA,gBAAgB,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,EAAE;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,aAAa;IACb,SAAS;IACT,aAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;IAC9C;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACrC,gBAAgB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACpF,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChE,gBAAgB,IAAI,MAAM,EAAE;IAC5B;IACA,oBAAoB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,GAAG,EAAE;IACtB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB;IACA,QAAQ,MAAM,CAAC,GAAG;IAClB,YAAY,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC;IACV,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;IAC9C,YAAY,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAC9C,YAAY,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAC9C,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG;IAClE,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChD,YAAY,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC7D,gBAAgB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACvD,aAAa;IACb,YAAY,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IACvC,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,GAAG,KAAK,CAAC;IAC7B,oBAAoB,MAAM;IAC1B,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACxB,SAAS;IACT;IACA,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,QAAQ,IAAI,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;IACjD,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;IACjD,oBAAoB,EAAE,CAAC,CAAC;IACxB,oBAAoB,MAAM;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7B,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;IACzD,gBAAgB,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,KAAK;IACL,IAAI,QAAQ,CAAC,GAAG,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,OAAO,KAAK,CAAC;IACzB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;IACzC,QAAQ,QAAQ,IAAI;IACpB,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC;IACnD,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,OAAO,KAAK,SAAS,CAAC;IAC7C,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC;IAClF,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;IAChC,YAAY,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;IACxD,SAAS;IACT,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,mBAAmB,CAAC;IAC1B,IAAI,WAAW,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,OAAO,EAAE;IAC5B,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;IAChE;IACA,YAAY,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,YAAY,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC1C,YAAY,OAAO,MAAM,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,sBAAsB,GAAG;IAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,KAAK;IACL;;;;;;;;;;IC/RO,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;IAChC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnB,IAAI,OAAO,SAAS,UAAU,GAAG;IACjC,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,KAAK,CAAC;IACN;;ICFA;IACA;IACA;IACA;IACA,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,CAAC;IACd,IAAI,aAAa,EAAE,CAAC;IACpB,IAAI,UAAU,EAAE,CAAC;IACjB,IAAI,aAAa,EAAE,CAAC;IACpB;IACA,IAAI,WAAW,EAAE,CAAC;IAClB,IAAI,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,MAAM,MAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA,IAAI,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;IAC/B,QAAQ,KAAK,EAAE,CAAC;IAChB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC;IACA;IACA;IACA,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACrB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY;IAChC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,YAAY,GAAG;IACvB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,IAAI;IACrB,YAAY,OAAO;IACnB,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG;IACpB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,MAAM,GAAG;IACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,SAAS;IAC1B,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC;IACrC,YAAY,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3B,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW;IAC1C,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE;IAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;IACtB,QAAQ,IAAI,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;IAChD,YAAY,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,4BAA4B,CAAC,CAAC;IAChF,SAAS;IACT,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzB,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,UAAU,CAAC,KAAK;IAClC,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC;IACV,QAAQ,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IAC5B,QAAQ,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC;IAChE;IACA,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;IACzD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,YAAY,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,YAAY,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;IAClD,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS;IACpC,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC9C,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/F,QAAQ,IAAI,aAAa,EAAE,CAClB;IACT,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3C,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;IACnC,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAChC,YAAY,OAAO;IACnB,SAAS;IACT;IACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM;IACjD,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7D,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IAClD,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,iBAAiB;IACjB,aAAa;IACb,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACjE,SAAS,EAAE,OAAO,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;IACrC;IACA,YAAY,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,MAAM,EAAE;IACnB,QAAQ,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC9B,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE;IAC5C,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;IAChC,gBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,aAAa,CAAC,CAAC;IACf,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IAC7B,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa;IAC1B,YAAY,OAAO;IACnB,QAAQ,QAAQ,MAAM,CAAC,IAAI;IAC3B,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACpD,oBAAoB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC/C,oBAAoB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACvC,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,KAAK,CAAC,2LAA2L,CAAC,CAAC,CAAC;IAC/P,iBAAiB;IACjB,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;IACpC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,gBAAgB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D;IACA,gBAAgB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5C,gBAAgB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACxD,gBAAgB,MAAM;IACtB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,SAAS;IACT,KAAK;IACL,IAAI,SAAS,CAAC,IAAI,EAAE;IACpB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IAC7D,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACzD,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,aAAa;IACb,SAAS;IACT,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,EAAE,EAAE;IACZ,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;IACzB,QAAQ,OAAO,UAAU,GAAG,IAAI,EAAE;IAClC;IACA,YAAY,IAAI,IAAI;IACpB,gBAAgB,OAAO;IACvB,YAAY,IAAI,GAAG,IAAI,CAAC;IACxB,YAAY,IAAI,CAAC,MAAM,CAAC;IACxB,gBAAgB,IAAI,EAAE,UAAU,CAAC,GAAG;IACpC,gBAAgB,EAAE,EAAE,EAAE;IACtB,gBAAgB,IAAI,EAAE,IAAI;IAC1B,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,MAAM,EAAE;IAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,QAAQ,IAAI,UAAU,KAAK,OAAO,GAAG,EAAE;IACvC,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxC,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,EAAE,EAAE;IAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;IAC5C,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;IACvB;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IAC5D,YAAY,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B;IACA,YAAY,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,QAAQ,EAAE;IACvB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,QAAQ,GAAG;IACnB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACnC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,QAAQ,EAAE;IACpB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,QAAQ,EAAE;IACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,QAAQ,EAAE;IACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACjC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;IACjD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,OAAO,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,aAAa,CAAC,QAAQ,EAAE;IAC5B,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,CAAC,QAAQ,EAAE;IACjC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;IACzC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC;IACzD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAC5C,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,OAAO,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,uBAAuB,CAAC,MAAM,EAAE;IACpC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;IAC7E,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACjE,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,aAAa;IACb,SAAS;IACT,KAAK;IACL;;IC9rBA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,OAAO,CAAC,IAAI,EAAE;IAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;IAC9B,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;IACjC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;IACzC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,EAAE,GAAG,SAAS,CAAC;IAChF,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;IACtC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;IAClB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;IAChD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;;IC3DM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,SAAS,CAAC;IAC5B,SAAS;IACT,QAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,QAAQ,CAAC,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;IAC/D,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC;IACrE,QAAQ,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,mBAAmB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IACvG,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC;IACnC,YAAY,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE;IAC5C,YAAY,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE;IAC9C,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IAC9C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC;IACvD,QAAQ,IAAI,IAAI,CAAC,YAAY;IAC7B,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL,IAAI,YAAY,CAAC,CAAC,EAAE;IACpB,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,aAAa,CAAC;IACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,iBAAiB,CAAC,CAAC,EAAE;IACzB,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAC3C,QAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,mBAAmB,CAAC,CAAC,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC;IAC7C,QAAQ,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,OAAO,CAAC,CAAC,EAAE;IACf,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa;IAC/B,YAAY,IAAI,CAAC,aAAa;IAC9B,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7C,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIM,QAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACrC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC;IACA,QAAQ,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY;IAC9D,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;IACvB,SAAS,CAAC,CAAC;IACX;IACA,QAAQ,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK;IACtD,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACxC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,EAAE,EAAE;IACpB,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC;IACxB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5C,aAAa;IACb,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,YAAY,IAAI,OAAO,KAAK,CAAC,EAAE;IAC/B,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb;IACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,cAAc,EAAE,CAAC;IACjC,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B;IACA,gBAAgB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,aAAa,EAAE,OAAO,CAAC,CAAC;IACxB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB;IACA,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC;IACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnQ,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,MAAM,EAAE;IACtB;IACA,QAAQ,QAAQ,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IACtB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,MAAM,EAAE;IACrB,YAAY,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;IAC/B,gBAAgB,OAAO;IACvB,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxD,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAClC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,IAAI,IAAI,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACvD,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;IACpD,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;IACjE,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IACtC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9E;IACA,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;IACnC,oBAAoB,IAAI,GAAG,EAAE;IAC7B,wBAAwB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnD,wBAAwB,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,wBAAwB,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAClE,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC,CAAC;IACtB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,GAAG;IAClB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9C,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,KAAK;IACL;;IClWA;IACA;IACA;IACA,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,GAAG,CAAC;IACnB,QAAQ,GAAG,GAAG,SAAS,CAAC;IACxB,KAAK;IACL,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;IACvD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACzB,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7B,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ;IACvC,QAAQ,IAAI,CAAC,sBAAsB,CAAC;IACpC,QAAQ,KAAK,KAAK,IAAI,CAAC,SAAS;IAChC,QAAQ,aAAa,CAAC;IACtB,IAAI,IAAI,EAAE,CAAC;IACX,IAAI,IAAI,aAAa,EAAE;IACvB,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;IACxB,YAAY,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,SAAS;IACT,QAAQ,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACrC,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD;IACA;IACA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;IACtB,IAAI,OAAO;IACX,IAAI,MAAM;IACV,IAAI,EAAE,EAAE,MAAM;IACd,IAAI,OAAO,EAAE,MAAM;IACnB,CAAC,CAAC;;;;QCzCU,IAAI,CAAA;QACJC,QAAM,CAAA;UAEX,OAAO,GAAA,CAAA,OAAA,EAAa,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,CAAA,CAAA;;IAE9E,KAAK,CAAI,CAAA,EAAA,OAAO,CACf,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,IAAI,IAAK,IAAI,CAAC,IAAI,EACxB,CAAA,CAAA,IAAI,CAAE,IAAI,IAAA;IAEV,CAAA,IAAI,GAAG,IAAI,CAAA;;KACXA,QAAM,GAAGC,MAAE,CAAC,OAAO,EAAA;IAElB,EAAA,IAAI,EAAE,OAAO;IACb,EAAA,KAAK,EAEJ,EAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA;;;;ICfpB,IAAI,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;gBC8CuD,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG0E,aAE1E,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;IAM+B,CAAA,IAAA,SAAA,WAAA,GAAG,IAAC,OAAO,GAAA,EAAA,CAAA;;;;;;;;;;;;;;IAAX,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,SAAA,MAAA,SAAA,WAAA,GAAG,IAAC,OAAO,GAAA,EAAA,CAAA,EAAA,QAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAA5B,IAAA,IAAA,UAAA,GAAG,IAAC,IAAI;;;;;;;;;;;;;;;;;IAAR,GAAA,IAAA,KAAA,aAAA,CAAA,EAAA,aAAA,CAAA,IAAA,WAAA,GAAG,IAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAiBqB,MAE3C,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BArCgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAiBzE,GAAK,CAAA,CAAA,CAAA,CAAA;;;;oCAAV,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;+BAkB0B,GAAQ,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBARxB,GAAG,CAAA,CAAA,CAAA,KAAA,KAAA,CAAA,EAAA,mBAAA,CAAA,6BAAA,GAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA,CAAA;;;;;;;;;;;OA9BtB,UA0CK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAxBJ,UAMK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OALJ,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;OAIN,UAQK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAPJ,UAMM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;mBAJW,GAAG,CAAA,CAAA,CAAA,KAAA,KAAA,CAAA,EAAA;iCAAH,GAAG,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;sDAEN,GAAW,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;qEA7BM,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAiBzE,GAAK,CAAA,CAAA,CAAA,CAAA;;;;mCAAV,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;4BAAJ,MAAI,EAAA,CAAA,GAAA,WAAA,CAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;yCAUU,GAAG,CAAA,CAAA,CAAA,KAAA,IAAA,CAAA,SAAA,EAAA;iCAAH,GAAG,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;sCAVjB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA1DG,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IAEhB,CAAA,IAAA,GAAG,GAAG,EAAE,CAAA;SACR,SAAS,CAAA;;;cAGJ,OAAO,CAAC,IAAI,EAAE,OAAO,EAAA;IAEzB,EAAA,IAAA,IAAI,KAAK,IAAI,CAAC,QAAQ,EACzB,IAAI,GAAG,IAAI,CAAA;;;IAEZ,EAAA,IAAI,CAAC,MAAM,CAAC,IAAI,IAAQ,CAAA,GAAA,IAAI,EAAI,EAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAA,CAAA,CAAA,CAAA;;;cAGpD,QAAQ,GAAA;sBAEhB,GAAG,GAAG,GAAG,CAAC,IAAI,EAAA,CAAA,CAAA;;UACV,GAAG,CAAC,MAAM,GAAG,CAAC,EAAA;IACjB,GAAAD,QAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAA,CAAA;OAC1B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAA,CAAA;;;IAGlB,EAAA,YAAA,CAAA,CAAA,EAAA,GAAG,GAAG,EAAE,CAAA,CAAA;IACR,EAAA,SAAS,CAAC,KAAK,EAAA,CAAA;;;IAGP,CAAA,SAAA,WAAW,CAAC,GAAG,EAAA;IAEnB,EAAA,IAAA,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,EAAA;IAEtC,GAAA,GAAG,CAAC,cAAc,EAAA,CAAA;OAClB,QAAQ,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;MAoCQ,GAAG,GAAA,IAAA,CAAA,SAAA,CAAA;;;;;;OACR,SAAS,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCjE8D,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGiC,KAEjC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAI0D,QAEzD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAlB+B,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA4DK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OA1CJ,UAwCK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OApCJ,UAAiB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACjB,UAkCK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjCJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;qEAtB3B,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGuC,UAEvC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA0CK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAxBJ,UAsBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OArBJ,UAAqB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACrB,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAlBJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAkD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;qEAnBrB,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGuC,aAEvC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAI0D,OAEzD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAQsD,QAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAC6D,QAE7D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACqD,QAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACqD,QAErD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BArC8B,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA8CK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OA5BJ,UAyBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OArBJ,UAAkB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAClB,UAmBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAlBJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;qEAtB3B,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGuC,aAEvC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA4BK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAVJ,UAOK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OANJ,UAAmD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACnD,UAIM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHL,UAA+C,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;OAAxB,UAAiB,CAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;OACxC,UAA+C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC/C,UAAoC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;qEApBN,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCqBgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGoC,QAEpC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UAkDK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OAhCJ,UA8BK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OApBJ,UAmBM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjBL,UAAoD,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAA7B,UAAsB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAC7C,UAA+B,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAE/B,UAAqE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OACrE,UAA4D,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAApB,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAErD,UAA8D,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC9D,UAA8D,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAArB,UAAc,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAEvD,UAA4F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5F,UAAkE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAAvB,UAAgB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAE3D,UAGK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAwD,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAAjC,UAA0B,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACjD,UAAuF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAExF,UAAoC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;6DAlBL,YAAY,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;;;;;qEAzBb,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAnBzE,SAAA,YAAY,CAAC,GAAG,EAAA;IAEpB,CAAA,IAAA,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,EAAA,CAAA;KAC1C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAA;KAChC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA,CAAA;;SACnB,WAAW,EAAA;MAEd,KAAK,CAAC,qBAAqB,EAAA,EAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,CAAC,MAAM,EAAA,CAAA,CAAA;;;;;;;IAZR,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCOgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGkC,QAElC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAZgC,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHnF,UA+KK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;OA3JJ,UAwJK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAvJJ,UAAkD,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAClD,UAqJM,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAnJL,UAA0E,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC1E,UAAsE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAArB,UAAc,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OAC/D,UA+IK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA7IJ,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAe,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACf,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAA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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte index 014e8991..4eddc6c0 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte @@ -9,6 +9,7 @@ import { socket, user } from './Chat_socket.svelte'; import { msgs } from './Store_msg.js'; + // pbm: sometimes socket is still undefined here socket.on('connect', function(){ console.log("socket.io connected"); @@ -47,13 +48,12 @@ console.log("socket.io pong"); }); - - socket.on('message', (from, message) => { + socket.on('message', function(from, message) + { + console.log("received msg:", message, from); if (from === user.username) from = "me"; - //msgs = [...msgs, { content: message, name: from }]; msgs.update(msgs => [...msgs, { content: message, name: from }]); - //add_msg(name, message); }); diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte index 7b2f4169..1bdd137e 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte @@ -3,7 +3,7 @@ import Button from './Chat_button.svelte'; import Msg from './Chat_msg.svelte'; - import { socket, user } from './Chat_socket.svelte'; + import { socket } from './Chat_socket.svelte'; import { msgs } from './Store_msg.js'; export let layout = ""; @@ -11,13 +11,9 @@ let msg = ""; let text_area; - //let msgs = []; - function add_msg(from, message) + function add_local_msg(from, message) { - if (from === user.username) - from = "me"; - //msgs = [...msgs, { content: message, name: from }]; msgs.update(msgs => [...msgs, { content: message, name: from }]); } @@ -26,7 +22,7 @@ msg = msg.trim(); if (msg.length > 0) { socket.emit('message', msg); - add_msg("me", msg); + add_local_msg("me", msg); } msg = ""; diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Socket_states.js b/srcs/requirements/svelte/api_front/src/pieces/chat/Socket_states.js new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Socket_states.js @@ -0,0 +1 @@ + diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Store_msg.js b/srcs/requirements/svelte/api_front/src/pieces/chat/Store_msg.js index 4d44d051..cf36f893 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Store_msg.js +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Store_msg.js @@ -1,5 +1,7 @@ import { writable } from 'svelte/store'; +export let user = writable({}); +export let socket = writable({}); export let msgs = writable([]); From f0736ab20b3a37b391b2326cd4d7cd6dc3b40eed Mon Sep 17 00:00:00 2001 From: simplonco Date: Thu, 5 Jan 2023 14:39:52 +0100 Subject: [PATCH 10/35] wip entities --- .../api_back/src/chat/chat.controller.ts | 55 +++++++++-- .../nestjs/api_back/src/chat/chat.gateway.ts | 1 - .../nestjs/api_back/src/chat/chat.module.ts | 4 + .../nestjs/api_back/src/chat/chat.service.ts | 27 +++++- .../api_back/src/chat/entities/chat.entity.ts | 26 +++++ .../src/users/entities/user.entity.ts | 4 + .../svelte/api_front/public/build/bundle.js | 82 +++++++++------- .../api_front/public/build/bundle.js.map | 2 +- .../api_front/src/pieces/chat/Chat.svelte | 96 ++++++++++--------- .../src/pieces/chat/Layout_create.svelte | 25 ++--- .../api_front/src/pieces/chat/Socket.ts | 25 +++++ 11 files changed, 248 insertions(+), 99 deletions(-) create mode 100644 srcs/requirements/nestjs/api_back/src/chat/entities/chat.entity.ts create mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/Socket.ts diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts index ee35d478..b29b37a8 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts @@ -1,11 +1,54 @@ -import { Controller, Post, Body } from '@nestjs/common'; +import { Controller, UseGuards, Get, Post, Body, Req } from '@nestjs/common'; +import { AuthenticateGuard, TwoFactorGuard } from 'src/auth/42/guards/42guards'; +import { ChatService } from './chat.service'; -@Controller('/chat/create') +@Controller('chat') export class ChatController { - @Post() - async handleSubmit(@Body() formData: any) { - console.log("------ create:"); - console.log(formData); + + constructor( + private chatService: ChatService, + ) {} + + @UseGuards(AuthenticateGuard) + @UseGuards(TwoFactorGuard) + @Get('rooms') + async get_rooms() { + const rooms = await this.chatService.getRooms(); + return { rooms }; } + + @UseGuards(AuthenticateGuard) + @UseGuards(TwoFactorGuard) + @Post('join') + async join_room(@Body() body) { + + console.log("------ create :"); + console.log(typeof body); + console.log(body); + console.log(body.room_name); + const { room_name } = body; + console.log("room_name:"); + console.log(room_name); + + const { room_id } = body; + // get user + let user; + await this.chatService.addUserToRoom(user, room_id); + + //return { message: 'Successfully joined room.' }; + return body; + } + + @UseGuards(AuthenticateGuard) + @UseGuards(TwoFactorGuard) + @Post('leave') + async leaveRoom(@Body() body) { + const { room_id } = body; + // get user + let user; + await this.chatService.removeUserFromRoom(user, room_id); + return { message: 'Successfully left room.' }; + } + } diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts index 6b983784..52e07210 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts @@ -52,6 +52,5 @@ export class ChatGateway client.local.emit('message', client.username, message); // this.chatService.add_message(this.server, message); } - } diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts index eff940ac..018d0b73 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts @@ -4,8 +4,12 @@ import { ChatService } from './chat.service'; import { ChatGateway } from './chat.gateway'; import { UsersModule } from 'src/users/users.module'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Chatroom } from './entities/chat.entity'; + @Module({ imports: [ + TypeOrmModule.forFeature([Chatroom]), UsersModule, ], controllers: [ diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index 7a798646..fc2ebe3c 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; +import { User } from 'src/users/entities/user.entity'; //import { InjectRepository } from '@nestjs/typeorm'; -//import { User } from 'src/users/entities/user.entity'; //import { Repository } from 'typeorm'; @Injectable() @@ -12,7 +12,28 @@ export class ChatService { // private readonly userRepository: Repository, ) { } - async add_message(server, message) { - return server.emit('message', message); + //async add_message(server, message) { + // return server.emit('message', message); + //} + + async getRooms() + { + // get rooms + // return rooms; + } + + async addUserToRoom(user: User, room_id: string) + { + // get room + //if !room + // create room + // add user to room + } + + async removeUserFromRoom(user: User, room_id: string) + { + // get room + // remove user } } + diff --git a/srcs/requirements/nestjs/api_back/src/chat/entities/chat.entity.ts b/srcs/requirements/nestjs/api_back/src/chat/entities/chat.entity.ts new file mode 100644 index 00000000..fa482347 --- /dev/null +++ b/srcs/requirements/nestjs/api_back/src/chat/entities/chat.entity.ts @@ -0,0 +1,26 @@ +import { + Entity, + Column, + ManyToOne, + PrimaryGeneratedColumn +} from "typeorm"; +import { User } from 'src/users/entities/user.entity'; + +@Entity('chatroom') +export class Chatroom { + @PrimaryGeneratedColumn() + id: number; + + @Column() + name: string; + + @Column() + type: 'public' | 'private' | 'direct'; + + @Column({ nullable: true }) + protection: boolean; + + @ManyToOne(type => User, user => user.ownedRoom) + owner: User; +} + diff --git a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts index b7ed9f65..f4f66890 100644 --- a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts +++ b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts @@ -3,6 +3,7 @@ import { IsEmail, Length } from "class-validator"; import { Column, Entity, JoinColumn, JoinTable, ManyToMany, OneToMany, OneToOne, PrimaryGeneratedColumn, Unique } from "typeorm"; import { Friendship } from "../../friendship/entities/friendship.entity"; import { UserStats } from "./userStat.entities"; +import { Chatroom } from "src/chat/entities/chat.entity"; @Entity('user') @@ -49,6 +50,9 @@ export class User { @OneToMany(type => Friendship , (friendship) => friendship.receiver) receivedFriendRequest: Friendship[]; + @OneToMany(type => Chatroom, chatroom => chatroom.owner) + ownedRoom: Chatroom[]; + @JoinColumn() @OneToOne(() => UserStats, { cascade: true }) stats: UserStats; diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 366b69b9..b182237d 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -10348,7 +10348,7 @@ var app = (function () { const { console: console_1$8 } = globals; const file$h = "src/pieces/chat/Layout_create.svelte"; - // (27:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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A,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,U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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte index 4eddc6c0..2c3bccc8 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte @@ -7,54 +7,62 @@ /* web sockets with socket.io */ import { socket, user } from './Chat_socket.svelte'; +// import { init_socket, socket, user } from './Socket'; import { msgs } from './Store_msg.js'; +// async function socket_actions() +// { +// +// await init_socket(); - // pbm: sometimes socket is still undefined here - socket.on('connect', function(){ - console.log("socket.io connected"); - }); - socket.on('disconnect', function(){ - console.log("socket.io disconnected"); - }); - socket.on('connect_error', function(){ - console.log("socket.io connect_error"); - }); - socket.on('connect_timeout', function(){ - console.log("socket.io connect_timeout"); - }); - socket.on('error', function(){ - console.log("socket.io error"); - }); - socket.on('reconnect', function(){ - console.log("socket.io reconnect"); - }); - socket.on('reconnect_attempt', function(){ - console.log("socket.io reconnect_attempt"); - }); - socket.on('reconnecting', function(){ - console.log("socket.io reconnecting"); - }); - socket.on('reconnect_error', function(){ - console.log("socket.io reconnect_error"); - }); - socket.on('reconnect_failed', function(){ - console.log("socket.io reconnect_failed"); - }); - socket.on('ping', function(){ - console.log("socket.io ping"); - }); - socket.on('pong', function(){ - console.log("socket.io pong"); - }); + // pbm: sometimes socket is still undefined here + socket.on('connect', function(){ + console.log("socket.io connected"); + }); + socket.on('disconnect', function(){ + console.log("socket.io disconnected"); + }); + socket.on('connect_error', function(){ + console.log("socket.io connect_error"); + }); + socket.on('connect_timeout', function(){ + console.log("socket.io connect_timeout"); + }); + socket.on('error', function(){ + console.log("socket.io error"); + }); + socket.on('reconnect', function(){ + console.log("socket.io reconnect"); + }); + socket.on('reconnect_attempt', function(){ + console.log("socket.io reconnect_attempt"); + }); + socket.on('reconnecting', function(){ + console.log("socket.io reconnecting"); + }); + socket.on('reconnect_error', function(){ + console.log("socket.io reconnect_error"); + }); + socket.on('reconnect_failed', function(){ + console.log("socket.io reconnect_failed"); + }); + socket.on('ping', function(){ + console.log("socket.io ping"); + }); + socket.on('pong', function(){ + console.log("socket.io pong"); + }); - socket.on('message', function(from, message) - { - console.log("received msg:", message, from); - if (from === user.username) - from = "me"; - msgs.update(msgs => [...msgs, { content: message, name: from }]); - }); + socket.on('message', function(from, message) + { + console.log("received msg:", message, from); + if (from === user.username) + from = "me"; + msgs.update(msgs => [...msgs, { content: message, name: from }]); + }); +// }; + +// socket_actions(); diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte index 9a22a597..28057b06 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte @@ -5,17 +5,20 @@ export let layout = ""; export let back = ""; - function handleSubmit(evt) + async function handleSubmit(evt) { let formIsValid = evt.target.checkValidity(); - console.log("----- formIsValid:"); - console.log(formIsValid); + if (formIsValid) { - fetch('/api/v2/chat/create', { + const formData = new FormData(evt.target); + console.log(formData); + const response = await fetch('/api/v2/chat/join', { method: 'POST', - body: evt.target, - }) + //headers: { 'Content-Type': 'multipart/form-data' }, + body: formData, + }); + console.log(await response.json()); } } @@ -52,20 +55,20 @@
    - + - + - + - +
    - +
    diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Socket.ts b/srcs/requirements/svelte/api_front/src/pieces/chat/Socket.ts new file mode 100644 index 00000000..736f1ed8 --- /dev/null +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Socket.ts @@ -0,0 +1,25 @@ + +import io from 'socket.io-client'; +export let user; +export let socket; + +const address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`; + +export function init_socket() +{ + fetch(`${address}/api/v2/user`) + .then((resp) => resp.json()) + .then((data) => + { + user = data; + socket = io(address, + { + path: '/chat', + query: + { + username: user.username, + }, + }); + }); +} + From 26150f6761a872758adad669de056d42f5acc189 Mon Sep 17 00:00:00 2001 From: simplonco Date: Thu, 5 Jan 2023 18:56:29 +0100 Subject: [PATCH 11/35] fixed create form --- .../api_back/src/chat/chat.controller.ts | 20 +- .../nestjs/api_back/src/chat/chat.module.ts | 3 +- .../nestjs/api_back/src/chat/chat.service.ts | 16 +- .../svelte/api_front/public/build/bundle.js | 437 ++++++++++++------ .../api_front/public/build/bundle.js.map | 2 +- .../src/pieces/chat/Layout_create.svelte | 95 ++-- 6 files changed, 362 insertions(+), 211 deletions(-) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts index b29b37a8..0fb38a9b 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts @@ -1,6 +1,7 @@ -import { Controller, UseGuards, Get, Post, Body, Req } from '@nestjs/common'; +import { Controller, UseGuards, HttpException, HttpStatus, Get, Post, Body, Req, Res } from '@nestjs/common'; import { AuthenticateGuard, TwoFactorGuard } from 'src/auth/42/guards/42guards'; import { ChatService } from './chat.service'; +import { User } from 'src/users/entities/user.entity'; @Controller('chat') export class ChatController { @@ -20,22 +21,21 @@ export class ChatController { @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Post('join') - async join_room(@Body() body) { - + async join_room(@Body() body, @Req() req, @Res() res) { console.log("------ create :"); console.log(typeof body); console.log(body); console.log(body.room_name); - const { room_name } = body; - console.log("room_name:"); - console.log(room_name); + //const { room_name } = body; - const { room_id } = body; - // get user - let user; - await this.chatService.addUserToRoom(user, room_id); + //const user: User = req.user; + //const { user } = requete; + // let user; + //let room_name; + //await this.chatService.addUserToRoom(user, room_name); //return { message: 'Successfully joined room.' }; + //return res.status(HttpStatus.BAD_REQUEST).json({message : 'You can\'t grant a ticket to another user'}); return body; } diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts index 018d0b73..875ccb25 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts @@ -6,10 +6,11 @@ import { UsersModule } from 'src/users/users.module'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Chatroom } from './entities/chat.entity'; +import { User } from 'src/users/entities/user.entity'; @Module({ imports: [ - TypeOrmModule.forFeature([Chatroom]), + TypeOrmModule.forFeature([Chatroom, User]), UsersModule, ], controllers: [ diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index fc2ebe3c..644228a2 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -1,15 +1,17 @@ import { Injectable } from '@nestjs/common'; import { User } from 'src/users/entities/user.entity'; - -//import { InjectRepository } from '@nestjs/typeorm'; -//import { Repository } from 'typeorm'; +import { Chatroom } from './entities/chat.entity'; +import { Repository } from 'typeorm'; +import { InjectRepository } from '@nestjs/typeorm'; @Injectable() export class ChatService { constructor( - // @InjectRepository(User) - // private readonly userRepository: Repository, + @InjectRepository(User) + private readonly userRepository: Repository, + @InjectRepository(Chatroom) + private readonly chatroomRepository: Repository, ) { } //async add_message(server, message) { @@ -22,7 +24,7 @@ export class ChatService { // return rooms; } - async addUserToRoom(user: User, room_id: string) + async addUserToRoom(user: User, room_name: string) { // get room //if !room @@ -30,7 +32,7 @@ export class ChatService { // add user to room } - async removeUserFromRoom(user: User, room_id: string) + async removeUserFromRoom(user: User, room_name: string) { // get room // remove user diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index b182237d..2bbc4194 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -1323,7 +1323,7 @@ var app = (function () { } // (260:0) {#if componentParams} - function create_if_block$d(ctx) { + function create_if_block$e(ctx) { let switch_instance; let switch_instance_anchor; let current; @@ -1408,7 +1408,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_if_block$d.name, + id: create_if_block$e.name, type: "if", source: "(260:0) {#if componentParams}", ctx @@ -1422,7 +1422,7 @@ var app = (function () { let if_block; let if_block_anchor; let current; - const if_block_creators = [create_if_block$d, create_else_block$6]; + const if_block_creators = [create_if_block$e, create_else_block$6]; const if_blocks = []; function select_block_type(ctx, dirty) { @@ -2336,7 +2336,7 @@ var app = (function () { } // (25:4) {#if $location !== '/profile'} - function create_if_block$c(ctx) { + function create_if_block$d(ctx) { let button; let mounted; let dispose; @@ -2366,7 +2366,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_if_block$c.name, + id: create_if_block$d.name, type: "if", source: "(25:4) {#if $location !== '/profile'}", ctx @@ -2399,7 +2399,7 @@ var app = (function () { let dispose; function select_block_type(ctx, dirty) { - if (/*$location*/ ctx[0] !== '/profile') return create_if_block$c; + if (/*$location*/ ctx[0] !== '/profile') return create_if_block$d; if (/*$location*/ ctx[0] === '/profile') return create_if_block_1$5; } @@ -2610,7 +2610,7 @@ var app = (function () { const file$t = "src/pieces/GenerateUserDisplay.svelte"; // (58:2) {#if user !== undefined} - function create_if_block$b(ctx) { + function create_if_block$c(ctx) { let main; let img; let img_src_value; @@ -2821,7 +2821,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_if_block$b.name, + id: create_if_block$c.name, type: "if", source: "(58:2) {#if user !== undefined}", ctx @@ -2832,7 +2832,7 @@ var app = (function () { function create_fragment$w(ctx) { let div; - let if_block = /*user*/ ctx[0] !== undefined && create_if_block$b(ctx); + let if_block = /*user*/ ctx[0] !== undefined && create_if_block$c(ctx); const block = { c: function create() { @@ -2853,7 +2853,7 @@ var app = (function () { if (if_block) { if_block.p(ctx, dirty); } else { - if_block = create_if_block$b(ctx); + if_block = create_if_block$c(ctx); if_block.c(); if_block.m(div, null); } @@ -10348,7 +10348,7 @@ var app = (function () { const { console: console_1$8 } = globals; const file$h = "src/pieces/chat/Layout_create.svelte"; - // (30:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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A,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,U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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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C7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte index 28057b06..29a857a1 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte @@ -5,21 +5,30 @@ export let layout = ""; export let back = ""; + let room_name = ""; + let room_type = ""; + let room_password = ""; + async function handleSubmit(evt) { let formIsValid = evt.target.checkValidity(); - if (formIsValid) - { - const formData = new FormData(evt.target); - console.log(formData); - const response = await fetch('/api/v2/chat/join', { - method: 'POST', - //headers: { 'Content-Type': 'multipart/form-data' }, - body: formData, - }); - console.log(await response.json()); - } + if (!formIsValid) + return; + + let formData = { + room_name: room_name, + room_type: room_type, + room_password: room_password, + }; + console.log("formData:", formData); + + const response = await fetch(`http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}/api/v2/chat/join`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(formData), + }); + console.log(await response.json()); } @@ -43,33 +52,32 @@
    -
    - + - - + - - + - - + -
    - - -
    + {#if room_type === 'protected'} +
    + + +
    + {/if}
    @@ -94,34 +102,19 @@ /* radio elements style check */ - .panel input[type=radio] { - display: none; - } .panel label._radio { - margin: 0px 20px 0px auto; + display: inline; + margin: 10px 0px 0px auto; padding-right: 10px; cursor: pointer; } + .panel label._radio * { + display: inline; + } .panel label._radio p { margin-top: 0px; margin-bottom: 0px; } - .panel label._radio::after { - content: ""; - position: absolute; - top: calc(50% - 6px); - right: 0px; - width: 12px; - height: 12px; - border-radius: 6px; - border: 2px solid rgb(150, 150, 150); - box-sizing: border-box; - cursor: pointer; - } - .panel input[type=radio]:checked - + label._radio::after { - background-color: rgb(200, 200, 200); - } /* submit From d201060dcfaa440ffad58ef4276ab220d030d9e1 Mon Sep 17 00:00:00 2001 From: simplonco Date: Thu, 5 Jan 2023 19:48:38 +0100 Subject: [PATCH 12/35] join room dto --- .../api_back/src/chat/chat.controller.ts | 13 ++-- .../api_back/src/chat/dto/joinRoom.dto.ts | 14 +++++ .../svelte/api_front/public/build/bundle.js | 59 ++++++++++--------- .../api_front/public/build/bundle.js.map | 2 +- .../src/pieces/chat/Layout_create.svelte | 3 +- 5 files changed, 54 insertions(+), 37 deletions(-) create mode 100644 srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts index 0fb38a9b..9a9848ed 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts @@ -2,6 +2,7 @@ import { Controller, UseGuards, HttpException, HttpStatus, Get, Post, Body, Req, import { AuthenticateGuard, TwoFactorGuard } from 'src/auth/42/guards/42guards'; import { ChatService } from './chat.service'; import { User } from 'src/users/entities/user.entity'; +import { joinRoomDto } from './dto/joinRoom.dto'; @Controller('chat') export class ChatController { @@ -13,7 +14,7 @@ export class ChatController { @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Get('rooms') - async get_rooms() { + async getRooms() { const rooms = await this.chatService.getRooms(); return { rooms }; } @@ -21,11 +22,11 @@ export class ChatController { @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Post('join') - async join_room(@Body() body, @Req() req, @Res() res) { + async joinRoom(@Body() joinRoomDto: joinRoomDto, @Req() req, @Res() res) { console.log("------ create :"); - console.log(typeof body); - console.log(body); - console.log(body.room_name); + console.log(typeof joinRoomDto); + console.log(joinRoomDto); + console.log(joinRoomDto.room_name); //const { room_name } = body; //const user: User = req.user; @@ -36,7 +37,7 @@ export class ChatController { //return { message: 'Successfully joined room.' }; //return res.status(HttpStatus.BAD_REQUEST).json({message : 'You can\'t grant a ticket to another user'}); - return body; + return joinRoomDto; } @UseGuards(AuthenticateGuard) diff --git a/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts b/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts new file mode 100644 index 00000000..e7df13cf --- /dev/null +++ b/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts @@ -0,0 +1,14 @@ +import { IsBoolean, IsEmpty, IsInt, IsNotEmpty, IsNumber, IsString } from "class-validator"; +import { IsNull } from "typeorm"; + +export class joinRoomDto { + @IsString() + @IsNotEmpty() + room_name : string + @IsString() + @IsNotEmpty() + room_type : string + @IsString() + room_password : string +} + diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 2bbc4194..984e8437 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -10348,7 +10348,7 @@ var app = (function () { const { console: console_1$8 } = globals; const file$h = "src/pieces/chat/Layout_create.svelte"; - // (39:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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C7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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A,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OA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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte index 29a857a1..eba56734 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte @@ -23,7 +23,8 @@ }; console.log("formData:", formData); - const response = await fetch(`http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}/api/v2/chat/join`, { + //const response = await fetch(`http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}/api/v2/chat/join`, { + const response = await fetch('/api/v2/chat/join', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData), From 89d25d15f5f3413b601a229afea0d639916bec98 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Fri, 6 Jan 2023 16:21:36 +0100 Subject: [PATCH 13/35] wip create room now receive errors http status --- README.md | 105 ++- .../api_back/src/chat/chat.controller.ts | 23 +- .../nestjs/api_back/src/chat/chat.service.ts | 16 +- .../api_back/src/chat/dto/joinRoom.dto.ts | 3 +- srcs/requirements/svelte/api_front/.env | 2 +- .../svelte/api_front/public/build/bundle.js | 856 +++++++++++------- .../api_front/public/build/bundle.js.map | 2 +- .../src/pieces/chat/Chat_warning.svelte | 11 + .../src/pieces/chat/Layout_create.svelte | 21 +- 9 files changed, 685 insertions(+), 354 deletions(-) create mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/Chat_warning.svelte diff --git a/README.md b/README.md index dbbeea98..8517d8e2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,3 @@ -- CONFLICT srcs/requirements/svelte/api_front/public/build/bundle.js -- CONFLICT srcs/requirements/svelte/api_front/public/build/bundle.js.map - ### Pour lancer le docker : @@ -134,8 +131,104 @@ --- -## hugo - -- in Chat.svelte, import of socket is not always defined becaus async, tried to solve that in onMount but no luck +## http status : +``` +- '100': 'CONTINUE', +- '101': 'SWITCHING_PROTOCOLS', +- '102': 'PROCESSING', +- '103': 'EARLYHINTS', +- '200': 'OK', +- '201': 'CREATED', +- '202': 'ACCEPTED', +- '203': 'NON_AUTHORITATIVE_INFORMATION', +- '204': 'NO_CONTENT', +- '205': 'RESET_CONTENT', +- '206': 'PARTIAL_CONTENT', +- '300': 'AMBIGUOUS', +- '301': 'MOVED_PERMANENTLY', +- '302': 'FOUND', +- '303': 'SEE_OTHER', +- '304': 'NOT_MODIFIED', +- '307': 'TEMPORARY_REDIRECT', +- '308': 'PERMANENT_REDIRECT', +- '400': 'BAD_REQUEST', +- '401': 'UNAUTHORIZED', +- '402': 'PAYMENT_REQUIRED', +- '403': 'FORBIDDEN', +- '404': 'NOT_FOUND', +- '405': 'METHOD_NOT_ALLOWED', +- '406': 'NOT_ACCEPTABLE', +- '407': 'PROXY_AUTHENTICATION_REQUIRED', +- '408': 'REQUEST_TIMEOUT', +- '409': 'CONFLICT', +- '410': 'GONE', +- '411': 'LENGTH_REQUIRED', +- '412': 'PRECONDITION_FAILED', +- '413': 'PAYLOAD_TOO_LARGE', +- '414': 'URI_TOO_LONG', +- '415': 'UNSUPPORTED_MEDIA_TYPE', +- '416': 'REQUESTED_RANGE_NOT_SATISFIABLE', +- '417': 'EXPECTATION_FAILED', +- '418': 'I_AM_A_TEAPOT', +- '421': 'MISDIRECTED', +- '422': 'UNPROCESSABLE_ENTITY', +- '424': 'FAILED_DEPENDENCY', +- '428': 'PRECONDITION_REQUIRED', +- '429': 'TOO_MANY_REQUESTS', +- '500': 'INTERNAL_SERVER_ERROR', +- '501': 'NOT_IMPLEMENTED', +- '502': 'BAD_GATEWAY', +- '503': 'SERVICE_UNAVAILABLE', +- '504': 'GATEWAY_TIMEOUT', +- '505': 'HTTP_VERSION_NOT_SUPPORTED', +- CONTINUE: 100, +- SWITCHING_PROTOCOLS: 101, +- PROCESSING: 102, +- EARLYHINTS: 103, +- OK: 200, +- CREATED: 201, +- ACCEPTED: 202, +- NON_AUTHORITATIVE_INFORMATION: 203, +- NO_CONTENT: 204, +- RESET_CONTENT: 205, +- PARTIAL_CONTENT: 206, +- AMBIGUOUS: 300, +- MOVED_PERMANENTLY: 301, +- FOUND: 302, +- SEE_OTHER: 303, +- NOT_MODIFIED: 304, +- TEMPORARY_REDIRECT: 307, +- PERMANENT_REDIRECT: 308, +- BAD_REQUEST: 400, +- UNAUTHORIZED: 401, +- PAYMENT_REQUIRED: 402, +- FORBIDDEN: 403, +- NOT_FOUND: 404, +- METHOD_NOT_ALLOWED: 405, +- NOT_ACCEPTABLE: 406, +- PROXY_AUTHENTICATION_REQUIRED: 407, +- REQUEST_TIMEOUT: 408, +- CONFLICT: 409, +- GONE: 410, +- LENGTH_REQUIRED: 411, +- PRECONDITION_FAILED: 412, +- PAYLOAD_TOO_LARGE: 413, +- URI_TOO_LONG: 414, +- UNSUPPORTED_MEDIA_TYPE: 415, +- REQUESTED_RANGE_NOT_SATISFIABLE: 416, +- EXPECTATION_FAILED: 417, +- I_AM_A_TEAPOT: 418, +- MISDIRECTED: 421, +- UNPROCESSABLE_ENTITY: 422, +- FAILED_DEPENDENCY: 424, +- PRECONDITION_REQUIRED: 428, +- TOO_MANY_REQUESTS: 429, +- INTERNAL_SERVER_ERROR: 500, +- NOT_IMPLEMENTED: 501, +- BAD_GATEWAY: 502, +- SERVICE_UNAVAILABLE: 503, +- GATEWAY_TIMEOUT: 504, +- HTTP_VERSION_NOT_SUPPORTED: 505 +``` diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts index 9a9848ed..7acd4c89 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts @@ -14,7 +14,8 @@ export class ChatController { @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Get('rooms') - async getRooms() { + async getRooms() + { const rooms = await this.chatService.getRooms(); return { rooms }; } @@ -22,28 +23,22 @@ export class ChatController { @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Post('join') - async joinRoom(@Body() joinRoomDto: joinRoomDto, @Req() req, @Res() res) { - console.log("------ create :"); - console.log(typeof joinRoomDto); - console.log(joinRoomDto); - console.log(joinRoomDto.room_name); - //const { room_name } = body; + async joinRoom(@Body() joinRoomDto: joinRoomDto, @Req() req) + { + const user: User = req.user; - //const user: User = req.user; - //const { user } = requete; - // let user; - //let room_name; - //await this.chatService.addUserToRoom(user, room_name); + let room = await this.chatService.addUserToRoom(user, joinRoomDto); //return { message: 'Successfully joined room.' }; //return res.status(HttpStatus.BAD_REQUEST).json({message : 'You can\'t grant a ticket to another user'}); - return joinRoomDto; + return { room }; } @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Post('leave') - async leaveRoom(@Body() body) { + async leaveRoom(@Body() body) + { const { room_id } = body; // get user let user; diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index 644228a2..aeaf7cde 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -1,8 +1,9 @@ -import { Injectable } from '@nestjs/common'; +import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; import { User } from 'src/users/entities/user.entity'; import { Chatroom } from './entities/chat.entity'; import { Repository } from 'typeorm'; import { InjectRepository } from '@nestjs/typeorm'; +import { joinRoomDto } from './dto/joinRoom.dto'; @Injectable() export class ChatService { @@ -24,12 +25,15 @@ export class ChatService { // return rooms; } - async addUserToRoom(user: User, room_name: string) + async addUserToRoom(user: User, joinRoomDto: joinRoomDto) { - // get room - //if !room - // create room - // add user to room + const room = await this.chatroomRepository.find({ where: { name: joinRoomDto.room_name } }); + { + console.log(HttpStatus); + // throw new HttpException(`This room already exist`, HttpStatus.CONFLICT); + throw new HttpException(`This room already exist`, HttpStatus.OK); + } + return "good room"; } async removeUserFromRoom(user: User, room_name: string) diff --git a/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts b/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts index e7df13cf..026df464 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts @@ -1,4 +1,4 @@ -import { IsBoolean, IsEmpty, IsInt, IsNotEmpty, IsNumber, IsString } from "class-validator"; +import { IsBoolean, IsEmpty, IsInt, IsNotEmpty, IsNumber, IsString, IsOptional } from "class-validator"; import { IsNull } from "typeorm"; export class joinRoomDto { @@ -9,6 +9,7 @@ export class joinRoomDto { @IsNotEmpty() room_type : string @IsString() + @IsOptional() room_password : string } diff --git a/srcs/requirements/svelte/api_front/.env b/srcs/requirements/svelte/api_front/.env index 1b450684..cd15d3c1 100644 --- a/srcs/requirements/svelte/api_front/.env +++ b/srcs/requirements/svelte/api_front/.env @@ -1,2 +1,2 @@ -WEBSITE_HOST=transcendance +WEBSITE_HOST=localhost WEBSITE_PORT=8080 diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 984e8437..e05875a0 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -1417,7 +1417,7 @@ var app = (function () { return block; } - function create_fragment$z(ctx) { + function create_fragment$A(ctx) { let current_block_type_index; let if_block; let if_block_anchor; @@ -1490,7 +1490,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$z.name, + id: create_fragment$A.name, type: "component", source: "", ctx @@ -1691,7 +1691,7 @@ var app = (function () { window.location.hash = href; } - function instance$z($$self, $$props, $$invalidate) { + function instance$A($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('Router', slots, []); let { routes = {} } = $$props; @@ -2106,7 +2106,7 @@ var app = (function () { constructor(options) { super(options); - init$2(this, options, instance$z, create_fragment$z, safe_not_equal, { + init$2(this, options, instance$A, create_fragment$A, safe_not_equal, { routes: 3, prefix: 4, restoreScrollState: 5 @@ -2116,7 +2116,7 @@ var app = (function () { component: this, tagName: "Router", options, - id: create_fragment$z.name + id: create_fragment$A.name }); } @@ -2146,9 +2146,9 @@ var app = (function () { } /* src/pages/NotFound.svelte generated by Svelte v3.53.1 */ - const file$v = "src/pages/NotFound.svelte"; + const file$w = "src/pages/NotFound.svelte"; - function create_fragment$y(ctx) { + function create_fragment$z(ctx) { let h1; let t1; let p0; @@ -2174,12 +2174,12 @@ var app = (function () { a = element("a"); h2 = element("h2"); h2.textContent = "Take me home →"; - add_location(h1, file$v, 4, 0, 64); - add_location(p0, file$v, 5, 0, 87); - add_location(p1, file$v, 7, 0, 192); - add_location(h2, file$v, 9, 4, 247); + add_location(h1, file$w, 4, 0, 64); + add_location(p0, file$w, 5, 0, 87); + add_location(p1, file$w, 7, 0, 192); + add_location(h2, file$w, 9, 4, 247); attr_dev(a, "href", "/"); - add_location(a, file$v, 8, 0, 221); + add_location(a, file$w, 8, 0, 221); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -2217,7 +2217,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$y.name, + id: create_fragment$z.name, type: "component", source: "", ctx @@ -2226,7 +2226,7 @@ var app = (function () { return block; } - function instance$y($$self, $$props, $$invalidate) { + function instance$z($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('NotFound', slots, []); const writable_props = []; @@ -2242,13 +2242,13 @@ var app = (function () { class NotFound extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$y, create_fragment$y, safe_not_equal, {}); + init$2(this, options, instance$z, create_fragment$z, safe_not_equal, {}); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "NotFound", options, - id: create_fragment$y.name + id: create_fragment$z.name }); } } @@ -2293,10 +2293,10 @@ var app = (function () { /* src/pieces/Header.svelte generated by Svelte v3.53.1 */ const { console: console_1$9 } = globals; - const file$u = "src/pieces/Header.svelte"; + const file$v = "src/pieces/Header.svelte"; // (27:39) - function create_if_block_1$5(ctx) { + function create_if_block_1$6(ctx) { let button; let mounted; let dispose; @@ -2306,7 +2306,7 @@ var app = (function () { button = element("button"); button.textContent = "Settings"; attr_dev(button, "class", "svelte-1aisfio"); - add_location(button, file$u, 27, 6, 1147); + add_location(button, file$v, 27, 6, 1147); }, m: function mount(target, anchor) { insert_dev(target, button, anchor); @@ -2326,7 +2326,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_if_block_1$5.name, + id: create_if_block_1$6.name, type: "if", source: "(27:39) ", ctx @@ -2346,7 +2346,7 @@ var app = (function () { button = element("button"); button.textContent = "My Profile"; attr_dev(button, "class", "svelte-1aisfio"); - add_location(button, file$u, 25, 6, 1037); + add_location(button, file$v, 25, 6, 1037); }, m: function mount(target, anchor) { insert_dev(target, button, anchor); @@ -2375,7 +2375,7 @@ var app = (function () { return block; } - function create_fragment$x(ctx) { + function create_fragment$y(ctx) { let header; let img; let img_src_value; @@ -2400,7 +2400,7 @@ var app = (function () { function select_block_type(ctx, dirty) { if (/*$location*/ ctx[0] !== '/profile') return create_if_block$d; - if (/*$location*/ ctx[0] === '/profile') return create_if_block_1$5; + if (/*$location*/ ctx[0] === '/profile') return create_if_block_1$6; } let current_block_type = select_block_type(ctx); @@ -2437,25 +2437,25 @@ var app = (function () { if (!src_url_equal(img.src, img_src_value = "/img/potato_logo.png")) attr_dev(img, "src", img_src_value); attr_dev(img, "alt", "Potato Pong Logo"); attr_dev(img, "class", "svelte-1aisfio"); - add_location(img, file$u, 18, 2, 697); + add_location(img, file$v, 18, 2, 697); attr_dev(h1, "class", "svelte-1aisfio"); - add_location(h1, file$u, 19, 2, 784); + add_location(h1, file$v, 19, 2, 784); attr_dev(button0, "class", "svelte-1aisfio"); - add_location(button0, file$u, 21, 1, 814); + add_location(button0, file$v, 21, 1, 814); attr_dev(button1, "class", "svelte-1aisfio"); - add_location(button1, file$u, 22, 1, 870); + add_location(button1, file$v, 22, 1, 870); attr_dev(button2, "class", "svelte-1aisfio"); - add_location(button2, file$u, 23, 1, 935); + add_location(button2, file$v, 23, 1, 935); attr_dev(button3, "class", "svelte-1aisfio"); - add_location(button3, file$u, 34, 4, 1391); + add_location(button3, file$v, 34, 4, 1391); attr_dev(button4, "class", "svelte-1aisfio"); - add_location(button4, file$u, 35, 4, 1464); + add_location(button4, file$v, 35, 4, 1464); attr_dev(button5, "class", "svelte-1aisfio"); - add_location(button5, file$u, 36, 4, 1523); + add_location(button5, file$v, 36, 4, 1523); attr_dev(nav, "class", "svelte-1aisfio"); - add_location(nav, file$u, 20, 2, 807); + add_location(nav, file$v, 20, 2, 807); attr_dev(header, "class", "svelte-1aisfio"); - add_location(header, file$u, 17, 0, 686); + add_location(header, file$v, 17, 0, 686); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -2524,7 +2524,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$x.name, + id: create_fragment$y.name, type: "component", source: "", ctx @@ -2533,7 +2533,7 @@ var app = (function () { return block; } - function instance$x($$self, $$props, $$invalidate) { + function instance$y($$self, $$props, $$invalidate) { let $location; validate_store(location$2, 'location'); component_subscribe($$self, location$2, $$value => $$invalidate(0, $location = $$value)); @@ -2541,7 +2541,7 @@ var app = (function () { validate_slots('Header', slots, []); let handleClickLogout = async () => { - await fetch(`http://${'transcendance'}:${'8080'}/api/v2/auth/logout`, { method: 'POST' }).// .then(resp => resp.json) + await fetch(`http://${'localhost'}:${'8080'}/api/v2/auth/logout`, { method: 'POST' }).// .then(resp => resp.json) // .then((resp) => console.log(resp)) then(() => push('/')); // i think for TS reasons it has to be a func not direclty push('/') or whatever @@ -2595,19 +2595,19 @@ var app = (function () { class Header extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$x, create_fragment$x, safe_not_equal, {}); + init$2(this, options, instance$y, create_fragment$y, safe_not_equal, {}); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "Header", options, - id: create_fragment$x.name + id: create_fragment$y.name }); } } /* src/pieces/GenerateUserDisplay.svelte generated by Svelte v3.53.1 */ - const file$t = "src/pieces/GenerateUserDisplay.svelte"; + const file$u = "src/pieces/GenerateUserDisplay.svelte"; // (58:2) {#if user !== undefined} function create_if_block$c(ctx) { @@ -2708,49 +2708,49 @@ var app = (function () { attr_dev(img, "class", "avatar svelte-1tyjf3q"); if (!src_url_equal(img.src, img_src_value = /*avatar*/ ctx[2])) attr_dev(img, "src", img_src_value); attr_dev(img, "alt", "default user icon"); - add_location(img, file$t, 61, 4, 2001); + add_location(img, file$u, 61, 4, 2001); attr_dev(div0, "class", "username svelte-1tyjf3q"); - add_location(div0, file$t, 62, 4, 2065); + add_location(div0, file$u, 62, 4, 2065); attr_dev(path0, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); attr_dev(path0, "class", "svelte-1tyjf3q"); - add_location(path0, file$t, 67, 10, 2271); + add_location(path0, file$u, 67, 10, 2271); attr_dev(svg0, "viewBox", "0 0 512 512"); attr_dev(svg0, "class", "svelte-1tyjf3q"); - add_location(svg0, file$t, 66, 10, 2233); + add_location(svg0, file$u, 66, 10, 2233); attr_dev(span0, "class", "glitter-star svelte-1tyjf3q"); - add_location(span0, file$t, 65, 8, 2174); + add_location(span0, file$u, 65, 8, 2174); attr_dev(path1, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); attr_dev(path1, "class", "svelte-1tyjf3q"); - add_location(path1, file$t, 72, 10, 2764); + add_location(path1, file$u, 72, 10, 2764); attr_dev(svg1, "viewBox", "0 0 512 512"); attr_dev(svg1, "class", "svelte-1tyjf3q"); - add_location(svg1, file$t, 71, 10, 2726); + add_location(svg1, file$u, 71, 10, 2726); attr_dev(span1, "class", "glitter-star svelte-1tyjf3q"); - add_location(span1, file$t, 70, 8, 2667); + add_location(span1, file$u, 70, 8, 2667); attr_dev(path2, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); attr_dev(path2, "class", "svelte-1tyjf3q"); - add_location(path2, file$t, 77, 10, 3257); + add_location(path2, file$u, 77, 10, 3257); attr_dev(svg2, "viewBox", "0 0 512 512"); attr_dev(svg2, "class", "svelte-1tyjf3q"); - add_location(svg2, file$t, 76, 10, 3219); + add_location(svg2, file$u, 76, 10, 3219); attr_dev(span2, "class", "glitter-star svelte-1tyjf3q"); - add_location(span2, file$t, 75, 8, 3160); + add_location(span2, file$u, 75, 8, 3160); attr_dev(span3, "class", "glitter-text svelte-1tyjf3q"); - add_location(span3, file$t, 80, 8, 3653); + add_location(span3, file$u, 80, 8, 3653); attr_dev(span4, "class", "glitter svelte-1tyjf3q"); - add_location(span4, file$t, 64, 6, 2143); + add_location(span4, file$u, 64, 6, 2143); attr_dev(div1, "class", "rank svelte-1tyjf3q"); - add_location(div1, file$t, 63, 4, 2113); + add_location(div1, file$u, 63, 4, 2113); attr_dev(h4, "class", "svelte-1tyjf3q"); - add_location(h4, file$t, 84, 6, 3758); - add_location(p0, file$t, 85, 6, 3790); - add_location(p1, file$t, 86, 6, 3833); - add_location(p2, file$t, 87, 6, 3878); - add_location(p3, file$t, 88, 6, 3921); + add_location(h4, file$u, 84, 6, 3758); + add_location(p0, file$u, 85, 6, 3790); + add_location(p1, file$u, 86, 6, 3833); + add_location(p2, file$u, 87, 6, 3878); + add_location(p3, file$u, 88, 6, 3921); attr_dev(section, "class", "main-stats svelte-1tyjf3q"); - add_location(section, file$t, 83, 4, 3723); + add_location(section, file$u, 83, 4, 3723); attr_dev(main, "class", "svelte-1tyjf3q"); - add_location(main, file$t, 58, 2, 1823); + add_location(main, file$u, 58, 2, 1823); }, m: function mount(target, anchor) { insert_dev(target, main, anchor); @@ -2830,7 +2830,7 @@ var app = (function () { return block; } - function create_fragment$w(ctx) { + function create_fragment$x(ctx) { let div; let if_block = /*user*/ ctx[0] !== undefined && create_if_block$c(ctx); @@ -2839,7 +2839,7 @@ var app = (function () { div = element("div"); if (if_block) if_block.c(); attr_dev(div, "class", "outer svelte-1tyjf3q"); - add_location(div, file$t, 56, 0, 1774); + add_location(div, file$u, 56, 0, 1774); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -2872,7 +2872,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$w.name, + id: create_fragment$x.name, type: "component", source: "", ctx @@ -2881,7 +2881,7 @@ var app = (function () { return block; } - function instance$w($$self, $$props, $$invalidate) { + function instance$x($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('GenerateUserDisplay', slots, []); let { user } = $$props; @@ -2892,7 +2892,7 @@ var app = (function () { onMount(async () => { // using this for now cuz for some reason there is yet to be a way to fet another person's avatar if (primary) { - await fetch(`http://${'transcendance'}:${'8080'}/api/v2/user/avatar`, { method: "GET" }).then(response => { + await fetch(`http://${'localhost'}:${'8080'}/api/v2/user/avatar`, { method: "GET" }).then(response => { return response.blob(); }).then(data => { const url = URL.createObjectURL(data); @@ -3028,13 +3028,13 @@ var app = (function () { class GenerateUserDisplay extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$w, create_fragment$w, safe_not_equal, { user: 0, primary: 4 }); + init$2(this, options, instance$x, create_fragment$x, safe_not_equal, { user: 0, primary: 4 }); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "GenerateUserDisplay", options, - id: create_fragment$w.name + id: create_fragment$x.name }); } @@ -3057,9 +3057,9 @@ var app = (function () { /* src/pieces/chat/tmp_debug.svelte generated by Svelte v3.53.1 */ - const file$s = "src/pieces/chat/tmp_debug.svelte"; + const file$t = "src/pieces/chat/tmp_debug.svelte"; - function create_fragment$v(ctx) { + function create_fragment$w(ctx) { let div; let p; let t1; @@ -3125,18 +3125,18 @@ var app = (function () { t21 = space(); button10 = element("button"); button10.textContent = "user from room_set"; - add_location(p, file$s, 8, 1, 209); - add_location(button0, file$s, 9, 1, 237); - add_location(button1, file$s, 10, 1, 305); - add_location(button2, file$s, 11, 1, 372); - add_location(button3, file$s, 12, 1, 439); - add_location(button4, file$s, 13, 1, 505); - add_location(button5, file$s, 14, 1, 576); - add_location(button6, file$s, 15, 1, 647); - add_location(button7, file$s, 16, 1, 719); - add_location(button8, file$s, 17, 1, 788); - add_location(button9, file$s, 18, 1, 855); - add_location(button10, file$s, 22, 1, 975); + add_location(p, file$t, 8, 1, 209); + add_location(button0, file$t, 9, 1, 237); + add_location(button1, file$t, 10, 1, 305); + add_location(button2, file$t, 11, 1, 372); + add_location(button3, file$t, 12, 1, 439); + add_location(button4, file$t, 13, 1, 505); + add_location(button5, file$t, 14, 1, 576); + add_location(button6, file$t, 15, 1, 647); + add_location(button7, file$t, 16, 1, 719); + add_location(button8, file$t, 17, 1, 788); + add_location(button9, file$t, 18, 1, 855); + add_location(button10, file$t, 22, 1, 975); set_style(div, "display", "flex"); set_style(div, "flex-direction", "column"); set_style(div, "font-size", "12px"); @@ -3144,7 +3144,7 @@ var app = (function () { set_style(div, "top", "20px"); set_style(div, "left", "20px"); set_style(div, "background-color", "white"); - add_location(div, file$s, 7, 0, 73); + add_location(div, file$t, 7, 0, 73); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -3205,7 +3205,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$v.name, + id: create_fragment$w.name, type: "component", source: "", ctx @@ -3214,7 +3214,7 @@ var app = (function () { return block; } - function instance$v($$self, $$props, $$invalidate) { + function instance$w($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('Tmp_debug', slots, []); let { layout = "" } = $$props; @@ -3307,13 +3307,13 @@ var app = (function () { class Tmp_debug extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$v, create_fragment$v, safe_not_equal, { layout: 0, layouts: 1 }); + init$2(this, options, instance$w, create_fragment$w, safe_not_equal, { layout: 0, layouts: 1 }); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "Tmp_debug", options, - id: create_fragment$v.name + id: create_fragment$w.name }); } @@ -3336,9 +3336,9 @@ var app = (function () { /* src/pieces/chat/Chat_box_css.svelte generated by Svelte v3.53.1 */ - const file$r = "src/pieces/chat/Chat_box_css.svelte"; + const file$s = "src/pieces/chat/Chat_box_css.svelte"; - function create_fragment$u(ctx) { + function create_fragment$v(ctx) { let div; let div_class_value; let current; @@ -3351,7 +3351,7 @@ var app = (function () { if (default_slot) default_slot.c(); attr_dev(div, "class", div_class_value = "" + (/*layout*/ ctx[1] + " chat_box" + " svelte-6ej1tr")); set_style(div, "background-color", /*color*/ ctx[0]); - add_location(div, file$r, 5, 0, 67); + add_location(div, file$s, 5, 0, 67); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -3406,7 +3406,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$u.name, + id: create_fragment$v.name, type: "component", source: "", ctx @@ -3415,7 +3415,7 @@ var app = (function () { return block; } - function instance$u($$self, $$props, $$invalidate) { + function instance$v($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('Chat_box_css', slots, ['default']); let { color } = $$props; @@ -3460,13 +3460,13 @@ var app = (function () { class Chat_box_css extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$u, create_fragment$u, safe_not_equal, { color: 0, layout: 1 }); + init$2(this, options, instance$v, create_fragment$v, safe_not_equal, { color: 0, layout: 1 }); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "Chat_box_css", options, - id: create_fragment$u.name + id: create_fragment$v.name }); } @@ -3489,9 +3489,9 @@ var app = (function () { /* src/pieces/chat/Chat_button.svelte generated by Svelte v3.53.1 */ - const file$q = "src/pieces/chat/Chat_button.svelte"; + const file$r = "src/pieces/chat/Chat_button.svelte"; - function create_fragment$t(ctx) { + function create_fragment$u(ctx) { let button; let p; let button_class_value; @@ -3507,10 +3507,10 @@ var app = (function () { p = element("p"); if (default_slot) default_slot.c(); attr_dev(p, "class", "svelte-1qngx3f"); - add_location(p, file$q, 24, 1, 416); + add_location(p, file$r, 24, 1, 416); attr_dev(button, "title", /*my_title*/ ctx[1]); attr_dev(button, "class", button_class_value = "" + (null_to_empty(/*my_class*/ ctx[0]) + " svelte-1qngx3f")); - add_location(button, file$q, 23, 0, 327); + add_location(button, file$r, 23, 0, 327); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -3588,7 +3588,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$t.name, + id: create_fragment$u.name, type: "component", source: "", ctx @@ -3597,7 +3597,7 @@ var app = (function () { return block; } - function instance$t($$self, $$props, $$invalidate) { + function instance$u($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('Chat_button', slots, ['default']); let { my_class = "" } = $$props; @@ -3662,7 +3662,7 @@ var app = (function () { constructor(options) { super(options); - init$2(this, options, instance$t, create_fragment$t, safe_not_equal, { + init$2(this, options, instance$u, create_fragment$u, safe_not_equal, { my_class: 0, my_title: 1, layout: 4, @@ -3674,7 +3674,7 @@ var app = (function () { component: this, tagName: "Chat_button", options, - id: create_fragment$t.name + id: create_fragment$u.name }); } @@ -3720,7 +3720,7 @@ var app = (function () { } /* src/pieces/chat/Layout_close.svelte generated by Svelte v3.53.1 */ - const file$p = "src/pieces/chat/Layout_close.svelte"; + const file$q = "src/pieces/chat/Layout_close.svelte"; // (10:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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A,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UA8BO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OA7BN,UAAY,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACZ,UA2BQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OA1BP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;;OAIhC,UAAoC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;qEAvKN,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCWgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGkC,QAElC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAIqD,aAEpD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAMO,cAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACO,iBAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAEE,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAIC,YAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAEE,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAvCwB,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe7E,CAAA,IAAA,SAAA,YAAA,GAAI,QAAK,UAAU,IAAAC,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBlB,CAAA,IAAA,SAAA,YAAA,GAAI,QAAK,UAAU,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OArC1B,UAgDK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;OAvBJ,UAqBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OApBJ,UAAqC,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;qEAvBN,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe7E,GAAA,aAAA,GAAI,QAAK,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBlB,GAAA,aAAA,GAAI,QAAK,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA9Cd,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IAEhB,CAAA,IAAA,IAAI,GAAG,MAAM,CAAA;IACb,CAAA,IAAA,KAAK,GAAG,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICmEY,CAAA,IAAA,gBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHT,CAAA,IAAA,gBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHP,CAAA,IAAA,kBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,oBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHN,CAAA,IAAA,qBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,uBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHX,CAAA,IAAA,mBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,qBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,CAAA,IAAA,oBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,sBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHd,CAAA,IAAA,eAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,CAAA,IAAA,gBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAPnC,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGZ,EAAA,eAAA,GAAM,QAAK,OAAO,EAAA,OAAA,CAAA,CAAA;IAGlB,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGjB,EAAA,eAAA,GAAM,QAAK,KAAK,EAAA,OAAA,CAAA,CAAA;IAGhB,EAAA,eAAA,GAAM,QAAK,UAAU,EAAA,OAAA,CAAA,CAAA;IAGrB,EAAA,eAAA,GAAM,QAAK,UAAU,EAAA,OAAA,CAAA,CAAA;IAGrB,EAAA,eAAA,GAAM,QAAK,WAAW,EAAA,OAAA,CAAA,CAAA;IAGtB,EAAA,eAAA,GAAM,QAAK,QAAQ,EAAA,OAAA,CAAA,CAAA;IAGnB,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGjB,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA7BX,GAAM,CAAA,CAAA,CAAA;yBAAS,GAAK,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEAApB,GAAM,CAAA,CAAA,CAAA,CAAA;kEAAS,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAvBzB,KAAK,EAAA,GAAA,OAAA,CAAA;IACZ,CAAA,IAAA,IAAI,GAAG,EAAE,CAAA;IACT,CAAA,IAAA,KAAK,GAAG,KAAK,CAAA;IACb,CAAA,IAAA,MAAM,GAAG,OAAO,CAAA;SAChB,OAAO,GAAA,CAAI,MAAM,EAAE,MAAM,CAAA,CAAA;;;;IAIpB,CAAA,SAAA,WAAW,CAAC,MAAM,EAAA;IAEtB,EAAA,IAAA,MAAM,KAAK,OAAO,EAAA,OAAA;UAElB,MAAM,KAAK,OAAO,CAAC,CAAC,CAAA,EAAA,OAAA;IAEpB,EAAA,IAAA,MAAM,KAAK,OAAO,CAAC,CAAC,CAAA,EAAA,YAAA,CAAA,CAAA,EACvB,OAAO,GAAI,CAAA,MAAM,EAAE,MAAM,yBAEzB,OAAO,GAAA,CAAI,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAE3B,WAAW,CAAC,MAAM,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCC2BN,GAAK,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;kEAAL,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAhET,CAAA,IAAA,EAAA,KAAK,GAAG,aAAa,EAAA,GAAA,OAAA,CAAA;;;;;;;KAc/Bc,QAAM,CAAC,EAAE,CAAC,SAAS,EAAA,YAAA;MAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;;;KAElCA,QAAM,CAAC,EAAE,CAAC,YAAY,EAAA,YAAA;MACrB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA,CAAA;;;KAErCA,QAAM,CAAC,EAAE,CAAC,eAAe,EAAA,YAAA;MACxB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAA,CAAA;;;KAEtCA,QAAM,CAAC,EAAE,CAAC,iBAAiB,EAAA,YAAA;MAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAA,CAAA;;;KAExCA,QAAM,CAAC,EAAE,CAAC,OAAO,EAAA,YAAA;MAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA,CAAA;;;KAE9BA,QAAM,CAAC,EAAE,CAAC,WAAW,EAAA,YAAA;MACpB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;;;KAElCA,QAAM,CAAC,EAAE,CAAC,mBAAmB,EAAA,YAAA;MAC5B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAA,CAAA;;;KAE1CA,QAAM,CAAC,EAAE,CAAC,cAAc,EAAA,YAAA;MACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA,CAAA;;;KAErCA,QAAM,CAAC,EAAE,CAAC,iBAAiB,EAAA,YAAA;MAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAA,CAAA;;;KAExCA,QAAM,CAAC,EAAE,CAAC,kBAAkB,EAAA,YAAA;MAC3B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAA,CAAA;;;KAEzCA,QAAM,CAAC,EAAE,CAAC,MAAM,EAAA,YAAA;MACf,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA,CAAA;;;KAE7BA,QAAM,CAAC,EAAE,CAAC,MAAM,EAAA,YAAA;MACf,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA,CAAA;;;IAG7B,CAAAA,QAAM,CAAC,EAAE,CAAC,SAAS,EAAW,UAAA,IAAI,EAAE,OAAO,EAAA;IAE1C,EAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,EAAE,IAAI,CAAA,CAAA;IACtC,EAAA,IAAA,IAAI,KAAK,IAAI,CAAC,QAAQ,EACzB,IAAI,GAAG,IAAI,CAAA;IACZ,EAAA,IAAI,CAAC,MAAM,CAAC,IAAI,IAAQ,CAAA,GAAA,IAAI,EAAI,EAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OChC3D,UAAa,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACb,UAAgC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAJK,IAAI,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IADtC,EAAA,aAAA,GAAI,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAFzB,UASK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAEL,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAtDtC,IAAI,CAAA;;KAER,OAAO,CAAA,YAAA;;sBAEL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCb1B,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFCWU,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,CAAA;6CAAc,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;mDAAiB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;OAA7D,UAEQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uHAFO,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,EAAA;;;;;8CAAc,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;oDAAiB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAXhD,CAAA,IAAA,EAAA,IAAI,GAAU,SAAS,EAAA,GAAA,OAAA,CAAA;IACvB,CAAA,IAAA,EAAA,IAAI,GAAW,KAAK,EAAA,GAAA,OAAA,CAAA;IACpB,CAAA,IAAA,EAAA,OAAO,GAAW,KAAK,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBC+IH,iBAAe,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARlB,CAAA,IAAA,QAAA,eAAA,GAAO,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;IAChB,CAAA,IAAA,QAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;IAKf,CAAA,IAAA,SAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qGAPgB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;OAL9D,UAeM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAdJ,UAOK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OANH,UAAoC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAGpC,UAAsF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAb,GAAA,eAAA,CAAA,MAAA,UAAA,GAAG,IAAC,QAAQ,CAAA,CAAA;;OACvF,UAA4C,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAC1C,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAE3C,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHH,UAAkE,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAClE,UAAkE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAR,GAAA,MAAA,CAAA,OAAA,WAAA,GAAG,IAAC,GAAG,CAAA;;OACjE,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;wEAZb,GAAe,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;4IAKQ,GAAO,CAAA,CAAA,CAAA,CAAA,EAAA;;;;IAAe,GAAA,IAAA,KAAA,WAAA,CAAA,IAAA,MAAA,CAAA,KAAA,aAAA,GAAG,IAAC,QAAQ,EAAA;IAAZ,IAAA,eAAA,CAAA,MAAA,UAAA,GAAG,IAAC,QAAQ,CAAA,CAAA;;;IACjE,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,eAAA,EAAA,KAAA,QAAA,MAAA,QAAA,eAAA,GAAO,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAChB,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,QAAA,MAAA,QAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAIuB,IAAA,MAAA,CAAA,OAAA,WAAA,GAAG,IAAC,GAAG,CAAA;;;IAC7C,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,SAAA,MAAA,SAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DASZ,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;OAA/B,UAAmD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;sFAA1B,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;gBAUkC,eAAa,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAFxD,CAAA,IAAA,QAAA,cAAA,GAAM,IAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;IAThC,CAAA,IAAA,QAAA,cAAA,GAAM,QAAK,SAAS,IAAAd,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;IAWT,IAAA,IAAA,gBAAA,GAAS,QAAK,SAAS;UAAG,SAAS;UAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OARjE,UASM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OANJ,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHH,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OACzC,UAA0C,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;OAC1C,UAAuC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;qEANX,GAAY,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;IAHvC,GAAA,eAAA,GAAM,QAAK,SAAS,EAAA;;;;;;;;;;;;;IASD,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,QAAA,MAAA,QAAA,cAAA,GAAM,IAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAErB,GAAA,IAAA,KAAA,iBAAA,CAAA,EAAA,cAAA,CAAA,IAAA,iBAAA,GAAS,QAAK,SAAS;SAAG,SAAS;SAAG,WAAW,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAnCvE,UAwCM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAvCJ,UAAkC,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAClC,UAoCK,CAAA,IAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA/JD,IAAI,CAAA;IACJ,CAAA,IAAA,MAAM,EAAE,SAAS,CAAA;IACjB,CAAA,IAAA,mBAAmB,GAAG,KAAK,CAAA;;;IAG3B,CAAA,IAAA,GAAG,KAAK,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAA,CAAA;;SAChC,OAAO,CAAA;WACL,MAAM,GAAA,EAAK,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAA;IACnD,CAAA,IAAA,OAAO,KAAI,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAA;;KAEvC,OAAO,CAAA,YAAA;MACL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;IAGlB,EAAA,IAAA,IAAI,KAAK,SAAS,EAAA;OACpB,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAA,CAAA;;;;sBAG/E,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA,CAAA;;IACvB,EAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAA,CAAA;IAEzB,EAAA,YAAA,CAAA,CAAA,EAAA,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,sBAAsB,EAAA,GAAA,CAAA,CAAA;;;;;IAM/B,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC9G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACH,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;IAEV,GAAA,CAAA,CAAA,KAAK,CAAO,MAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,uCAAuC,EAAA,MAAA,CAAA,CAAA,CAAA;;;;;;;;WAWlE,eAAe,GAAA,YAAA;;;IAGd,EAAA,IAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAO,KAAA,EAAE,IAAK,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,sBAAsB,EAAA;uBACzE,MAAM,CAAC,QAAQ,GAAG,sBAAsB,EAAA,MAAA,CAAA,CAAA;;IAGnC,GAAA,MAAA,IAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAO,KAAA,EAAE,IAAK,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,sBAAsB,EAAA;IAC/E,GAAA,YAAA,CAAA,CAAA,EAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAA,GAAA,CAAA,CAAA;;uBAGxB,MAAM,CAAC,QAAQ,GAAG,EAAE,EAAA,MAAA,CAAA,CAAA;;;YAEnB,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,YAAA,CAAA,EAAA;IACzE,GAAA,MAAM,EAAE,OAAO;OACf,OAAO,EAAA,EACP,cAAc,EAAE,kBAAlB,EAAA;OAEE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;QACpB,UAAU,EAAE,GAAG,CAAC,QAAQ;QACxB,wBAAwB,EAAG,GAAG,CAAC,GAAA;;IAG/B,GAAA,CAAA,CAAA,IAAI,CAAE,QAAQ,IAAA;WACV,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA,YAAA,CAAA,CAAA,EAC1B,OAAO,CAAC,QAAQ,GAAG,8BAA8B,EACzC,OAAA,CAAA,CAAA,MAAA,IAAA,QAAQ,CAAC,MAAM,KAAK,GAAG,EAC/B,IAAI,CAAC,MAAM,CAAA,CAAA,MAAA,YAAA,CAAA,CAAA,EAEX,MAAM,CAAC,QAAQ,GAAG,sBAAsB,EAAA,MAAA,CAAA,CAAA;IAGzC,GAAA,CAAA,CAAA,KAAK,CAAE,GAAG,IAAA,YAAA,CAAA,CAAA,EAAK,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAA,MAAA,CAAA,CAAA,CAAA;;;;WAM9B,YAAY,GAAA,YAAA;sBAChB,MAAM,CAAC,MAAM,GAAG,EAAE,EAAA,MAAA,CAAA,CAAA;;IACd,EAAA,IAAA,SAAS,KAAK,SAAS,EAAA;uBACzB,MAAM,CAAC,MAAM,GAAG,0BAA0B,EAAA,MAAA,CAAA,CAAA;;;;IAGzC,EAAA,MAAA,IAAI,OAAO,QAAQ,EAAA,CAAA;IACzB,EAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA,CAAA,CAAA;;;MAG/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,CAAA;;YAEV,wBAAwB,GAAG,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAEpG,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAG,MAAM,EACf,IAAI,EAAG,IAAI,EAAA,CAAA,CAAA;IAEN,EAAA,MAAA,kBAAkB,SAAS,wBAAwB,CAAA;;UACrD,kBAAkB,CAAC,EAAE,KAAK,IAAI,EAAA;IACjC,GAAA,mBAAmB,GAAG,IAAI,CAAA;uBAC1B,OAAO,CAAC,MAAM,GAAG,8BAA8B,EAAA,OAAA,CAAA,CAAA;;IAG/C,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAA,MAAA,CAAA,CAAA;;;IAGxC,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC7G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACH,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;IAEb,GAAA,CAAA,CAAA,KAAK,CAAO,MAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,uCAAuC,EAAA,MAAA,CAAA,CAAA,CAAA;;;;;;;;;;IAec,EAAA,GAAG,CAAC,QAAQ,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;IAM3B,EAAA,GAAG,CAAC,GAAG,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;MAiBlC,SAAS,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBC5G3C,sBAAoB,CAAA,CAAA;+BAAC,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;OADnC,UAAa,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACb,UAAyC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;mEAAf,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAJY,IAAI,EAAA,CAAA;;kBAAnB,GAAI,CAAA,CAAA,CAAA,KAAA,KAAA,CAAA,EAAA;gDAAJ,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;oDAAJ,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IADjC,EAAA,aAAA,GAAI,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAzCV,SAAS,EAAA,GAAA,OAAA,CAAA;SAChB,IAAI,CAAA;;KAER,OAAO,CAAA,YAAA;IACL,EAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAE,SAAS,CAAA,CAAA;;;sBAEjD,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAyB,sBAAA,EAAA,SAAS,CAChH,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;IAalB,CAAA,MAAA,UAAU,SAAS,WAAW,IAAA;IAClC,EAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAE,UAAU,CAAA,CAAA;;;sBAEzD,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAyB,sBAAA,EAAA,UAAU,CACjH,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;MAkBQ,IAAI,GAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCCyGzB,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;oCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;kCAAC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;mCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OARN,UAAgD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAUS,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,QAAQ,GAAA,EAAA,CAAA;;;;IAIzC,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJxC,UAA2E,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAI3E,UAA8C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAC9C,UAAG,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IALoD,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAIzC,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiBpC,CAAA,IAAA,QAAA,uBAAA,GAAe,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;IACL,IAAA,SAAA,sBAAA,GAAe,IAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;OADjD,UAAoC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IAA9B,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,uBAAA,CAAA,KAAA,QAAA,MAAA,QAAA,uBAAA,GAAe,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;IACL,GAAA,IAAA,KAAA,uBAAA,CAAA,EAAA,oBAAA,CAAA,SAAA,uBAAA,GAAe,IAAC,QAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGqC,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IApC7F,EAAA,iBAAA,GAAQ,QAAK,SAAS,EAAA,OAAAC,mBAAA,CAAA;;;;;;yCA+BtB,GAAe,CAAA,CAAA,CAAA,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAnCxB,UA0GK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAxGH,UAsBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OArBH,UAAiB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;OAwBnB,UA8EK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA5EH,UAAoB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;+BAMf,GAAe,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SArJlB,MAAM,GAAA,EAAI,aAAa,EAAE,EAAE,EAAA,CAAA;IAC3B,CAAA,IAAA,GAAG,KAAI,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAA,CAAA;SAE3C,IAAI,CAAA;SACJ,QAAQ,CAAA;SACR,SAAS,CAAA;IACT,CAAA,IAAA,YAAY,EAAE,gBAAgB,CAAA;SAC9B,eAAe,CAAA;;KAInB,OAAO,CAAA,YAAA;;;MAGL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;;;MAOtB,SAAS,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACnF,yBAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;MAKtB,YAAY,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACtF,uBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;MAMpB,gBAAgB,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC1F,wBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;sBAKpB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAClF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;WAOhB,eAAe,GAAA,YAAA;sBACnB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAClF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;WAKhB,iBAAiB,GAAA,YAAA;MACrB,SAAS,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACnF,yBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;WAIhB,mBAAmB,GAAA,YAAA;MACvB,YAAY,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACtF,uBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;SAIlB,iBAAiB,CAAA;;IACf,CAAA,MAAA,iBAAiB,SAAS,uBAAuB,IAAA;MACrD,GAAG,CAAC,cAAc,GAAG,EAAE,CAAA;MACvB,MAAM,CAAC,aAAa,GAAG,EAAE,CAAA;IACrB,EAAA,IAAA,KAAK,GAAG,KAAK,CAAA;;UACb,uBAAuB,KAAK,IAAI,CAAC,QAAQ,EAAA;OAC3C,MAAM,CAAC,aAAa,GAAG,4BAA4B,CAAA;IACnD,GAAA,KAAK,GAAG,KAAK,CAAA;;OAEb,GAAG,CAAC,cAAc,GAAG,uBAAuB,CAAA;IAC5C,GAAA,KAAK,GAAG,IAAI,CAAA;;;UAGV,KAAK,EAAA;IACP,GAAA,iBAAiB,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,yBAAA,CAAA,EAAA;IAC1F,IAAA,MAAM,EAAG,MAAM;QACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;QAC3C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;SACpB,kBAAkB,EAAE,GAAG,CAAC,cAAc;IACtC,KAAA,QAAQ,EAAE,GAAtB;;IAGS,IAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;;IAKlB,CAAA,MAAA,SAAS,SAAS,KAAK,IAAA;IAC3B,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;;;;;;;IASnB,CAAA,MAAA,UAAU,SAAS,YAAY,IAAA;;;;;;;;;;IAwBK,CAAA,MAAA,aAAA,GAAA,KAAA,IAAA,SAAS,CAAC,KAAK,CAAA,CAAA;mCAyBZ,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC9KzF;IACO,MAAM,MAAM,GAAG,UAAU,CAAC;AACjC;IACO,MAAM,aAAa,GAAG;IAC7B,EAAE,GAAG,EAAE,cAAc;IACrB,EAAE,WAAW,EAAE,eAAe;IAC9B,EAAE,UAAU,EAAE,cAAc;IAC5B,EAAE,GAAG,EAAE,QAAQ;IACf,CAAC,CAAC;AACF;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;;;;;;;;;;;;;;wBC1BkB,aAAa,EAAA,MAAA,EAAA;;;;;;;;;;;;;;;;;;OAD/B,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC8EG,GAAA,QAAA,CAAA,QAAA,EAAA,OAAA,EAAA,MAAM,CAAC,UAAU,CAAA,CAAA;IAChB,GAAA,QAAA,CAAA,QAAA,EAAA,QAAA,EAAA,MAAM,CAAC,WAAW,CAAA,CAAA;;;;;;;;OAH3B,UAIS,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAnGJ,MAAM,CAAA;;;IAEL,CAAA,IAAA,MAAM,GAAG,KAAK,CAAA;;;;;IAIZ,CAAA,MAAA,GAAG,OAAO,KAAK,EAAA,CAAA;;KACrB,GAAG,CAAC,GAAG,GAAG,qBAAqB,CAAA;;IAC/B,CAAA,GAAG,CAAC,MAAM,GAAA,MAAA;IACR,EAAA,MAAM,GAAG,IAAI,CAAA;;;;;KAef,OAAO,CAAA,MAAA;;IAID,EAAA,MAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAA,CAAA;;;IAEhC,EAAA,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAA;;IAC7B,EAAA,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAA;;;;;;;IAU3B,EAAA,IAAA,OAAO,GAAI,CAAA,MAAM,CAAC,MAAM,GAAI,GAAG,CAAC,MAAM,GAAG,UAAU,IAAI,YAAY,GAAG,CAAC,KAAO,YAAY,CAAA;;;;;;UAiB1F,MAAM,GAAA,EAAK,OAAO,GAAG,GAAG,CAAA,CAAA;;UACxB,MAAM,GAAA,EAAK,OAAO,GAAG,GAAG,CAAA,CAAA;IACxB,EAAA,IAAA,CAAC,GAAG,MAAM,CAAA;IACV,EAAA,IAAA,CAAC,GAAG,MAAM,CAAA;UAEV,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAA,CAAA;;;IAE/B,EAAA,SAAA,IAAI,CAAC,CAAC,EAAA;;IAEX,GAAA,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAA,CAAA;;;OAE/C,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAA,CAAA;;;;;;;;;;IAUzB,GAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAA,EAAA;IACd,IAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAA,EAAA;;SAEvB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAI,CAAC,GAAG,OAAO,EAAG,CAAC,GAAI,CAAC,GAAG,OAAO,EAAG,GAAG,CAAC,KAAK,GAAG,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAA,CAAA;;;;;;IAO/G,GAAA,oBAAoB,CAAC,KAAK,CAAA,CAAA;;;;;;;;;;;;OAOjB,MAAM,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;KAlFb,UAAU,GAAG,EAAE,CAAA;KACf,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAA,CAAA;KAClD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCqChD,UAAgC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;qDAAjB,GAAK,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHpB,UAAuD,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OACvD,UAAkC,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;8CAAnB,GAAM,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAFlB,GAAI,CAAA,CAAA,CAAA,aAAI,GAAI,CAAA,CAAA,CAAA,CAAC,QAAQ,EAAA,OAAAA,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJ9B,UAeQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;OAdN,UAAmB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAQK,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;;;OACL,UAGI,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;OAFF,UAAoB,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;;OACpB,UAAqB,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAxDnB,IAAI,CAAA;;KAET,OAAO,CAAA,YAAA;sBACJ,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,IAAI,IAAK,IAAI,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;MAIzB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;;MACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,CAAA;;;;;;;;;;UAUd,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,EAAA;OACpD,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAA,CAAA;;;;WAMlF,KAAK,GAAA,YAAA;IACT,EAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,YAAA,CAAA,CAAA;MACrF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;;;;;WAK/B,MAAM,GAAA,YAAA;IACN,EAAA,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CACpE,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAE,MAAM,EAAA,CAAA,CAAA;IAElB,EAAA,YAAA,CAAA,CAAA,EAAA,IAAI,GAAG,SAAS,CAAA,CAAA;;;;;;;;;IAWS,CAAA,MAAA,aAAA,GAAA,MAAA,IAAI,CAAC,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCUxC,UAA6B,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAPxB,GAAS,CAAA,CAAA,CAAA,IAAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;iEALJ,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;;;;;;;;;;;OAAnB,UAA+F,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;OAC/F,UAGM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAFJ,UAA0E,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;yCAA7C,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA;;OACnC,UAAkC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;mEAFJ,GAAU,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;4FADhC,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA;;;;8DAEY,GAAM,CAAA,CAAA,CAAA,EAAA;0CAAN,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA;;;yBAGhC,GAAS,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAGT,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;OADZ,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;kEADF,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAXd,UAAoB,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCADd,GAAc,CAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;OAHxB,UAqBM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApBJ,UAAmB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAA8B,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAzC1B,SAAS,CAAA;IACT,CAAA,IAAA,MAAM,GAAG,EAAE,CAAA;IACX,CAAA,IAAA,SAAS,GAAG,EAAE,CAAA;;WACZ,cAAc,GAAA,CAAA,YAAA;IACZ,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,+BAExE,MAAM,EAAE,MAAM,EAEf,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACF,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,GAAG,CAAA,CAAA;;;;WAIb,UAAU,GAAA,YAAA;IACR,EAAA,MAAA,QAAQ,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,sBAAA,CAAA,EAAA;IAEvF,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EACL,cAAc,EAAE,kBAAkB,EAAA;IAEpC,GAAA,IAAI,EAAG,IAAI,CAAC,SAAS,CACnB,EAAA,WAAW,EAAG,MAAM,EAAA,CAAA;;;UAGtB,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA;IACzB,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,EAAE,CAAA,CAAA;uBACX,SAAS,GAAA,CAAA,UAAA,CAAA,CAAA,CAAA;;;UAEP,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA;IACzB,GAAA,IAAI,CAAC,UAAU,CAAA,CAAA;OACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAA;;;;;;;;;;;MAgBH,MAAM,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OClDzC,UAGK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAFH,UAAyC,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;OACzC,UAAwD,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA9B,CAAA,MAAA,aAAA,GAAA,MAAA,OAAO,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;ICuDvC,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrB,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3B;;ICbA,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;IACrG,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAC1C,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IACxE,IAAI,MAAM,EAAE,GAAG,cAAc,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO;IACX,QAAQ,KAAK;IACb,QAAQ,QAAQ;IAChB,QAAQ,MAAM;IACd,QAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AACxB,cAAc,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrE,YAAY,EAAE,cAAc,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,KAAK,CAAC;IACN;;IC/DO,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC;IACnC;IAEO,MAAM,CAAC,GAAG,WAAW,CAAC;IACtB,MAAM,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,EAAE,GAAC,CAAC,CAAC;IAChB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAC,IAAI,CAAC,CAAC;IAIrD,MAAM,eAAe,GAAG,IAAI,CAAC;IAGpC;IACO,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IAIlD;;ICzBO,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;IAE1C;IACO,MAAM,qBAAqB,GAAG,EAAE,CAAC;IAEjC,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAE9B,MAAM,cAAc,GAAG,kBAAkB,GAAC,IAAI,CAAC;IAE/C,MAAM,iBAAiB,GAAG,GAAG,CAAC;;ICfrC,IAAY,UAuBX,CAAA;IAvBD,CAAA,UAAY,UAAU,EAAA;;IAErB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;IACd,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;IACnB,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;;IAGL,IAAA,UAAA,CAAA,UAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAqB,CAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;;IAGX,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,IAAA,UAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;IACjB,IAAA,UAAA,CAAA,UAAA,CAAA,sBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,sBAAoB,CAAA;IACpB,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IAEZ,CAAC,EAvBW,UAAU,KAAV,UAAU,GAuBrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,SAIX,CAAA;IAJD,CAAA,UAAY,SAAS,EAAA;IACpB,IAAA,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,IAAA,SAAA,CAAA,SAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM,CAAA;IACN,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACL,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,UAGX,CAAA;IAHD,CAAA,UAAY,UAAU,EAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACN,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,UAGX,CAAA;IAHD,CAAA,UAAY,UAAU,EAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACV,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,YAKX,CAAA;IALD,CAAA,UAAY,YAAY,EAAA;;IAEvB,IAAA,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAc,CAAA;IACd,IAAA,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,YAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAoB,CAAA;IACrB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA;;IC1CM,IAAIgB,MAAc,CAAC;IACnB,IAAI,EAAwB,CAAC;IAC7B,IAAI,YAAY,GAAoBC,YAAe,CAAC,QAAQ,CAAC;IAE9D,SAAU,OAAO,CAAC,KAAe,EAAA;QACtCD,MAAI,GAAG,KAAK,CAAC;IACd,CAAC;IAEK,SAAU,KAAK,CAAC,KAA2B,EAAA;QAChD,EAAE,GAAG,KAAK,CAAC;IACZ,CAAC;IAEK,SAAU,eAAe,CAAC,KAAsB,EAAA;QACrD,YAAY,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,IAAI,aAAyB,CAAC;IAE/B,SAAU,gBAAgB,CAAC,KAAiB,EAAA;QACjD,aAAa,GAAG,KAAK,CAAC;IACvB;;IC+DA;UACa,WAAW,CAAA;IAEvB,IAAA,WAAA,CAAY,OAAsB,CAAC,EAAA;IAClC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACD,CAAA;IAEK,MAAO,cAAe,SAAQ,WAAW,CAAA;IAE9C,IAAA,WAAA,CAAY,IAAmB,EAAA;IAC9B,QAAA,KAAK,CAACE,UAAa,CAAC,cAAc,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACD,CAAA;IAEK,MAAO,oBAAqB,SAAQ,cAAc,CAAA;QAQvD,WAAY,CAAA,YAA6B,EAAE,KAAa,EAAE,QAAgB,EAAE,YAAA,GAAwB,KAAK,EAAE,iBAA0B,EAAE,eAA0B,EAAA;IAChK,QAAA,KAAK,CAACC,UAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,QAAA,IAAI,eAAe,EAAE;IACpB,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACvC,SAAA;IACD,QAAA,IAAI,iBAAiB,EAAE;IACtB,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC3C,SAAA;SACD;IACD,CAAA;IAEK,MAAO,uBAAwB,SAAQ,cAAc,CAAA;IAE1D,IAAA,WAAA,CAAY,aAAqB,EAAA;IAChC,QAAA,KAAK,CAACA,UAAa,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACnC;IACD,CAAA;IAEK,MAAO,UAAW,SAAQ,WAAW,CAAA;QAG1C,WAAY,CAAA,KAAA,GAAsBC,SAAY,CAAC,OAAO,EAAE,KAAa,CAAC,EAAA;IACrE,QAAA,KAAK,CAACF,UAAa,CAAC,WAAW,CAAC,CAAC;IACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SACb;IACD;;IC1ID;;IAEE;IACI,SAAU,KAAK,CAAC,OAAe,EAAA;IAEpC,IAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3BF,MAAI,CAAC,KAAK,EAAE,CAAC;IACb,IAAA,MAAM,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACjC,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACK,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACtC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,WAAW,GAAA;QAE1B,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACtC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,mBAAmB,GAAA;QAElC,MAAM,IAAI,GAAG,eAAe,CAAC;IAC7B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,UAAU,GAAA;QAEzB,MAAM,IAAI,GAAG,aAAa,CAAC;IAC3B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAElB,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;IAC5B,QAAA,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC9B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAGD,CAAG,GAAC,KAAK,CAAC;IAC1B,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;SACxB,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;IAGD;;IAEE;aACc,GAAG,GAAA;IAElB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACA,CAAG,GAAC,KAAK,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACxC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IACvB,CAAC;aAEe,IAAI,GAAA;IAEnB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,KAAK,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACxC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;IACxB,CAAC;IAEK,SAAU,OAAO,CAAC,UAAyB,EAAA;IAEhD,IAAA,IAAI,UAAU,KAAKC,UAAa,CAAC,IAAI,EAAE;IACtC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACF,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,KAAA;IACI,SAAA;IACJ,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,KAAA;QACD,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC;SAC9B,EAAE,IAAI,CAAC,CAAC;QACT,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC;SAChC,EAAE,IAAI,CAAC,CAAC;IACV;;ICxFA;IACO,MAAM,YAAY,GAAuB;QAC/C,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,GAAC,CAAC,GAAC,MAAM,CAAC;QAC3G,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,GAAC,CAAC,GAAC,MAAM,CAAC;KAC3G,CAAC;IACK,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,uBAAuB,CAAC,CAAC;IAEjI,SAAU,SAAS,CAAC,KAAa,EAAA;IAEtC,IAAA,IAAI,QAAiB,CAAC;QACtB,IAAI,KAAK,KAAK,IAAI,EAAE;YACnB,QAAQ,GAAG,KAAK,CAAC;IACjB,KAAA;IACI,SAAA;YACJ,QAAQ,GAAG,IAAI,CAAC;IAChB,KAAA;IAED,IAAA,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;IAC9B,QAAA,KAAK,CAAC,MAAM,GAAGE,iBAAmB,CAAC;IACnC,QAAA,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,KAAC,CAAC,CAAC;IACH,IAAA,WAAW,CAAC,MAAM,GAAGA,iBAAmB,CAAC;IACzC,IAAA,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC9B;;aCvBgB,MAAM,CAAC,MAAc,CAAC,EAAE,MAAc,CAAC,EAAA;IACtD,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAC1C;;aCFgB,SAAS,CAAC,KAAa,EAAE,QAAkC,EAAE,WAAwB,EAAA;IAEpG,IAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,GAAG,CAAC,EAAE;IACd,QAAA,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChB,SAAA;IACD,QAAA,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,KAAA;IACI,SAAA,IAAI,WAAW,EAAE;IACrB,QAAA,WAAW,EAAE,CAAC;IACd,KAAA;IACF;;UCda,MAAM,CAAA;IAGlB,IAAA,WAAA,CAAY,CAAY,GAAA,CAAC,EAAE,CAAA,GAAY,CAAC,EAAA;IACvC,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACX;QACD,MAAM,CAAC,CAAS,EAAE,CAAS,EAAA;IAC1B,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACX;QACD,UAAU,GAAA;IACT,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,QAAA,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAAC,mBAAmB,CAAC,CAAC;SAC1E;IACD,CAAA;IAEK,MAAO,aAAc,SAAQ,MAAM,CAAA;IAGxC,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;IAuBE;;IClCK,MAAM,SAAS,GAAG;IACxB,IAAA,UAAU,EAAE,KAAK;IACjB,IAAA,UAAU,EAAE,KAAK;KACjB,CAAA;aAEe,cAAc,GAAA;IAC7B,IAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;IAC7B,IAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,MAAM,UAAU,CAAA;IAAhB,IAAA,WAAA,GAAA;YACC,IAAE,CAAA,EAAA,GAAG,EAAE,CAAC;SAKR;IAAA,CAAA;IAED,MAAM,mBAAmB,CAAA;IAKxB,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,GAAG,eAAwB,GAAG,GAAG,GAAG,MAAwB,GAAG,OAAO,CAAC;IACrF,IAAI,MAAiB,CAAC;IACtB,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAG7C,SAAA,aAAa,CAAC,OAAwB,EAAE,KAAa,EAAE,QAAgB,EAAE,YAAY,GAAG,KAAK,EAAE,iBAA0B,EAAE,eAA0B,EAAA;QAEpK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,IAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,OAAO,GAAG,YAAY,GAAG,KAAK,GAAG,eAAe,GAAG,QAAQ,GAAG,oBAAoB,GAAI,YAAY;cAC9I,iBAAiB,GAAG,iBAAiB,CAAC,CAAA;QACzC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;IACzC,QAAA,IAAI,YAAY,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIC,oBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAE,CAAC,CAAC;IACvI,SAAA;IACI,aAAA;gBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIA,oBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAE,CAAC,CAAC;IACrF,SAAA;IACF,KAAC,CAAC,CAAC;;IAEH,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACtD,CAAC;IAMD,SAAS,aAAa,CAAkB,KAAmB,EAAA;QAC1D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAKP,UAAa,CAAC,KAAK,EAAE;IACtC,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,QAAAQ,KAAS,CAAE,IAAsB,CAAC,OAAO,CAAC,CAAC;IAC3C,KAAA;IACF,CAAC;IAED,SAAS,gBAAgB,CAAkB,KAAmB,EAAA;QAE7D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKR,UAAa,CAAC,QAAQ;IAC1B,YAAA,UAAU,CAAC,EAAE,GAAsB,IAAK,CAAC,EAAE,CAAC;gBAC5C,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,qBAAqB;gBACvCS,WAAe,EAAE,CAAC;gBAClB,MAAM;IACP,QAAA,KAAKT,UAAa,CAAC,mBAAmB;IACrC,YAAA,UAAU,CAAC,IAAI,GAAiC,IAAK,CAAC,IAAI,CAAC;gBAC3D,IAAI,UAAU,CAAC,IAAI,KAAKK,UAAa,CAAC,IAAI,EAC1C;IACC,gBAAA,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC;IAClC,gBAAA,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC;IACrC,aAAA;qBACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAChD;IACC,gBAAA,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC;IACnC,gBAAA,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC;IACpC,aAAA;gBACD,UAAU,CAAC,eAAe,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrG,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIK,WAAc,CAACV,UAAa,CAAC,iBAAiB,CAAC,CAAE,CAAC,CAAC;gBACnFW,mBAAuB,EAAE,CAAC;gBAC1B,MAAM;IACP,QAAA,KAAKX,UAAa,CAAC,UAAU;IAC5B,YAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACxD,YAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,YAAA,aAAa,EAAE,CAAC;gBAChB,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,UAAU;IAC5B,YAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5B,YAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBACxDY,UAAc,EAAE,CAAC;gBACjB,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,cAAc,CAAkB,KAAmB,EAAA;QAE3D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKZ,UAAa,CAAC,UAAU;;gBAE5B,UAAU,CAAC,IAA0B,CAAC,CAAC;gBACvC,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,WAAW;gBAC7B,WAAW,CAAC,IAA2B,CAAC,CAAC;gBACzC,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,QAAQ;gBAC1B,QAAQ,CAAC,IAAwB,CAAC,CAAC;gBACnC,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,UAAU,CAAC,IAAwB,EAAA;IAE3C,IAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1B,IAAA,IAAI,YAAY,GAAGD,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;IACjC,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,KAAC,CAAC,CAAC;IACH;;;;;IAKM;QAEN,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1F,IAAI,UAAU,CAAC,IAAI,KAAKM,UAAa,CAAC,IAAI,EAAE;YAC3C,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACzE,KAAA;aACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAAE;YACjD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAA;;IAGD,IAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,IAAI,EAAE;IAC3C,QAAA,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjF,KAAA;aACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAAE;IACjD,QAAA,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChF,KAAA;IAED,IAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,MAAM,CACnC,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACxD,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACxD,CAAC;QAEF,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;IACpF,QAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAC/D,KAAA;;IAGD,IAAA,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;IAG9B,IAAA,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC;IAC7C,WAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,EACjD;YACC,OAAO,CAAC,GAAG,CACV,CAAA;uBACoB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;AACjB,qBAAA,EAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AACvB,qBAAA,EAAA,aAAa,CAAC,CAAC,CAAE,CAAA,CACpC,CAAC;IACH,KAAA;IACF,CAAC;IAED,SAAS,WAAW,CAAC,IAAyB,EAAA;;IAG7C,IAAA,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;YACpF,WAAW,CAAC,IAAI,EAAE,CAAC;IACnB,KAAA;IACI,SAAA,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;YACxF,WAAW,CAAC,IAAI,EAAE,CAAC;IACnB,KAAA;QACD,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,SAAS,QAAQ,CAAC,IAAsB,EAAA;IAEvC,IAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,EAAE;YACpCQ,GAAO,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,OAAO,EAAE;IACjB,YAAAC,OAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAA;IACD,KAAA;IACI,SAAA;YACJC,IAAQ,EAAE,CAAC;IACX,KAAA;IACF,CAAC;IAED;IAEM,SAAU,sBAAsB,CAAC,aAAqB,EAAA;QAE3D,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;IACzC,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIC,uBAA0B,CAAC,aAAa,CAAC,CAAE,CAAC,CAAC;IAC9E,KAAC,CAAC,CAAC;;IAEH,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QAE9D,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpG,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAExG,CAAC;IAEK,SAAU,yBAAyB,CAAkB,KAAmB,EAAA;QAE7E,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAKhB,UAAa,CAAC,UAAU,EAC1C;IACC,QAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IACjE,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIU,WAAc,CAACV,UAAa,CAAC,oBAAoB,CAAC,CAAE,CAAC,CAAC;IACtF,QAAA,aAAa,EAAE,CAAC;IAChB,KAAA;IACF,CAAC;IAED,SAAS,uBAAuB,CAAkB,KAAmB,EAAA;QAEpE,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKA,UAAa,CAAC,UAAU;gBAC5B,mBAAmB,CAAC,IAA0B,CAAC,CAAC;gBAChD,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,WAAW;gBAC7B,oBAAoB,CAAC,IAA2B,CAAC,CAAC;gBAClD,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,QAAQ;gBAC1B,iBAAiB,CAAyB,CAAC,CAAC;gBAC5C,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,mBAAmB,CAAC,IAAwB,EAAA;IAEpD,IAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEnC,IAAA,IAAI,YAAY,GAAGD,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;IACjC,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,KAAC,CAAC,CAAC;;IAGH,IAAA,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,EACpD;IACC,QAAA,IAAI,OAAsB,CAAC;IAC3B,QAAA,IAAI,MAAM,KAAK,EAAE,CAAC,UAAU,EAAE;IAC7B,YAAA,OAAO,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;IAChD,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;IACjD,SAAA;IAED,QAAA,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,QAAA,IAAI,MAAM,KAAK,EAAE,CAAC,UAAU,EAAE;IAC7B,YAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjD,SAAA;YAED,MAAM,CAAC,GAAG,GAAG,IAAI,MAAM,CACtB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EACxB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CACxB,CAAC;YAEF,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC1D,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IACrC,SAAA;IACD,KAAA;IACF,CAAC;IAED,SAAS,oBAAoB,CAAC,IAAyB,EAAA;IAEtD,IAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAsB,EAAA;IAEhD,IAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,IAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;;IAEf;;;IAGI;IACL;;UCrUa,YAAY,CAAA;QAIxB,WAAY,CAAA,UAAyB,EAAE,SAAiB,EAAA;IACvD,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAC9B,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACxB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC3B;IACD;;ICLM,IAAI,WAAW,GAAG,KAAK,CAAC;IAI/B,IAAIkB,YAAkB,CAAC;IAEvB,MAAM,UAAU,GAAkB,IAAIC,UAAa,EAAE,CAAC;IACtD,MAAM,eAAe,GAAmB,EAAE,CAAC;IAE3C;IACA;;;IAGI;aAEY,WAAW,GAAA;IAE1B;;IAEiD;IAEjD,IAAAD,YAAU,GAAGE,cAAgB,CAAC;;IAG9B,IAAA,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,UAAU,CAAC,KAAK,GAAGjB,SAAY,CAAC,OAAO,CAAC;IAExC,IAAA,MAAM,IAAI,GAAGJ,MAAI,CAAC,IAAI,CAAC;IACvB,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EACrB;YACC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAC3B;gBACC,WAAW,GAAG,CAAC,WAAW,CAAC;IAC3B,YAAAA,MAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpB,SAAA;IACD,QAAA,eAAe,CAACmB,YAAU,EAAE,IAAI,CAAC,CAAC;IAClC,KAAA;IAED,IAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;;QAED,eAAe,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,UAAU,EAAEA,YAAU,CAAC,CAAC,CAAC;;QAG/D,IAAI,UAAU,CAAC,KAAK,KAAKf,SAAY,CAAC,OAAO,EAAE;;;IAG9C,QAAA,oBAAoB,CAACe,YAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,KAAA;IACF,CAAC;IAED,SAAS,eAAe,CAAC,KAAa,EAAE,IAAc,EAAA;QAErD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAC5E;YACC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC/E,UAAU,CAAC,KAAK,GAAGf,SAAY,CAAC,EAAE,CAAC;IACnC,SAAA;IACD,KAAA;aACI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;YACpF,UAAU,CAAC,KAAK,GAAGA,SAAY,CAAC,IAAI,CAAC;IACrC,KAAA;IACF,CAAC;IAOD,SAAS,oBAAoB,CAAC,KAAa,EAAE,KAAmB,EAAA;;IAG/D,IAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAA,IAAI,KAAK,KAAKA,SAAY,CAAC,EAAE,EAAE;IAC9B,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClB,KAAA;IACI,SAAA,IAAI,KAAK,KAAKA,SAAY,CAAC,IAAI,EAAE;IACrC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,KAAA;IACD,IAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEK,SAAU,WAAW,CAAC,WAAmB,EAAA;;QAG9C,IAAI,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,KAAmB,KAAI;IACzD,QAAA,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW,EAAE;IAC7B,YAAA,OAAO,IAAI,CAAC;IACZ,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;IACd,KAAC,CAAC,CAAC;;QAGH,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC;;IAG/B,IAAA,eAAe,CAAC,OAAO,CAAC,CAAC,KAAmB,KAAI;YAC/C,IAAI,KAAK,CAAC,KAAK,KAAKA,SAAY,CAAC,OAAO,EAAE;gBACzC,oBAAoB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,SAAA;IACF,KAAC,CAAC,CAAC;IACJ;;ICzGgB,SAAA,cAAc,CAAC,KAAa,EAAE,EAAkB,EAAA;IAE/D,IAAA,MAAM,OAAO,GAAoB,EAAE,CAAC,OAAO,CAAC;IAC5C,IAAA,MAAM,UAAU,GAAoB,EAAE,CAAC,UAAU,CAAC;IAClD,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAIkB,gBAAkB,EAAE;IAC9D,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpB,KAAA;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAIhB,CAAG,GAACiB,QAAU,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAIjB,CAAG,GAACgB,gBAAkB,EAAE;IACrF,QAAA,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvB,KAAA;IACD,IAAA,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/D,IAAA,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACnE;;ICNA,IAAI,UAAkB,CAAC;aAEP,QAAQ,GAAA;IAEvB;;IAEiD;IAEjD,IAAA,UAAU,GAAGD,cAAgB,CAAC;;;;QAK9B,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YACpC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IACjF,KAAA;;QAGD,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,KAAC,CAAC,CAAC;IAEH,IAAA,IAAI,YAAY,GAAGpB,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAA;IACF,CAAC;aAEe,iBAAiB,GAAA;IAEhC,IAAA,UAAU,GAAGoB,cAAgB,CAAC;;QAG9B,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YAC9B,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACtF,KAAA;QACD,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YAC/B,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IACxF,KAAA;;QAGD,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,KAAC,CAAC,CAAC;IAEH,IAAA,IAAI,YAAY,GAAGpB,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAA;IACF,CAAC;IAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,MAAoB,EAAE,OAAsB,EAAA;;IAGvF,IAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1D,IAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IAC7C,YAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAClD;IACC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IACzB,KAAA;IACF;;aCnEgB,QAAQ,GAAA;QAEvBD,MAAI,CAAC,KAAK,EAAE,CAAC;IAEb,IAAA,IAAI,WAAW,EAAE;IAChB,QAAA,QAAQ,EAAE,CAAC;IACX,KAAA;IAED,IAAA,UAAU,EAAE,CAAC;IAEb,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAElB,IAAA,WAAW,EAAE,CAAC;IACf,CAAC;IAED,SAAS,WAAW,GAAA;IAEnB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,KAAC,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,UAAU,GAAA;IAElB,IAAA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACpB,IAAA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACpB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,SAAS,QAAQ,GAAA;IAEhB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAEtB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACvB;;UC/Ca,WAAW,CAAA;IAAxB,IAAA,WAAA,GAAA;YACC,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;YACd,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;YACpB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;YACrB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;YAC3B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;YACxB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;YACvB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;SAUvB;QATA,KAAK,GAAA;IACJ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IACzB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAChC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC5B;IACD;;UCfY,QAAQ,CAAA;IAOpB,IAAA,WAAA,CAAY,SAAiB,EAAA;YAN7B,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;YACpB,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAC;YAChC,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;YAC7B,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;YAI5B,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACpD,QAAA,IAAI,MAAM,IAAI,MAAM,YAAY,iBAAiB,EAAE;IAClD,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACtD,OAAO;IACP,SAAA;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAA6B,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAGwB,WAAa,CAAC;IAClC,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAGA,WAAa,GAAGC,WAAa,CAAC;SACnD;IACD,IAAA,MAAM,CAAC,GAAW,EAAA;IACjB,QAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;IACV,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACrB;IACD,IAAA,SAAS,CAAC,GAAW,EAAA;IACpB,QAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvB,SAAA;SACD;QACD,KAAK,GAAA;YACJ,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAChE;IACD;;ICnCD;UACa,QAAQ,CAAA;QAOpB,WAAY,CAAA,GAAkB,EAAE,IAAY,EAC1C,GAA6B,EAAE,KAAa,EAAE,IAAA,GAAe,QAAQ,EAAA;YAFvE,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;;IAKjB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;QACD,MAAM,GAAA;IACL,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACrD;QACD,KAAK,GAAA;;;IAGJ,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;IAKjD,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;;SAG1F;IACD,CAAA;IAEK,MAAO,gBAAiB,SAAQ,QAAQ,CAAA;QAE7C,WAAY,CAAA,GAAkB,EAAE,IAAY,EAC1C,GAA6B,EAAE,KAAa,EAAE,IAAa,EAAA;YAE5D,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAJ5B,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;SAK1B;IACD,IAAA,IAAI,KAAK,GAAA;YACR,OAAO,IAAI,CAAC,MAAM,CAAC;SACnB;QACD,IAAI,KAAK,CAAC,CAAS,EAAA;IAClB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;SACzB;IACD;;UClDY,SAAS,CAAA;IAIrB,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAA;IAC5D,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACrB;IACD,IAAA,SAAS,CAAC,QAAmB,EAAA;IAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5C,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACtD,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IACxD,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW;oBACzB,OAAO,GAAG,cAAc,CAAC;oBACzB,SAAS,GAAG,YAAY,CAAC;IAC1B,gBAAC,QAAQ,GAAG,aAAa,CAAC,EAAE;IAC9B,YAAA,OAAO,KAAK,CAAC;IACb,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,IAAI,CAAC;IACZ,SAAA;SACD;IACD,CAAA;IAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;IAI7C,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAA;IAC/E,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAJ3B,IAAG,CAAA,GAAA,GAAW,IAAI,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IAK7B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SACvB;IACD,IAAA,IAAI,CAAC,KAAa,EAAA;;;;IAIjB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAC9C;QACD,cAAc,CAAC,KAAa,EAAE,WAAwB,EAAA;IACrD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAC7C;QACS,mBAAmB,CAAC,KAAa,EAAE,WAAwB,EAAA;IACpE,QAAA,IAAI,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;IAC3C,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;IAClB,SAAA;SACD;IACD,CAAA;IAEK,MAAO,MAAO,SAAQ,eAAe,CAAA;IAC1C,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAA;YAC/E,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SACrC;QACD,cAAc,CAAC,KAAa,EAAE,WAAwB,EAAA;;IAErD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;;SAE7C;IACD,CAAA;IAEK,MAAO,IAAK,SAAQ,eAAe,CAAA;IAGxC,IAAA,WAAA,CAAY,GAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,aAAqB,EAAA;YACrF,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAFnC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;IAG3B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACnC;QACD,aAAa,CAAC,KAAa,EAAE,WAAwB,EAAA;IACpD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpD,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EACX;gBACC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,SAAA;SACD;IACD,IAAA,MAAM,CAAC,QAAoB,EAAA;IAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC3B;IACS,IAAA,WAAW,CAAC,QAAoB,EAAA;IACzC;IACuD;YACvD,IAAI,QAAQ,YAAY,MAAM,EAAE;IAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC7B,SAAA;IACI,aAAA;gBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;IACnB,SAAA;SACD;QACS,WAAW,GAAA;IACpB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7B;IACS,IAAA,aAAa,CAAC,MAAc,EAAA;IACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;SAC/B;IACS,IAAA,iBAAiB,CAAC,MAAc,EAAA;IACzC,QAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;YAEjC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAExB,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,QAAA,MAAM,WAAW,GAAG,iBAAiB,GAAG,EAAE,CAAC;IAC3C,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAC,CAAC,CAAC;IACnC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;IAE5C,QAAA,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACjC,QAAA,MAAM,gBAAgB,GAAG,UAAU,GAAG,IAAI,CAAC;YAC3C,IAAI,MAAM,GAAG,gBAAgB,IAAI,MAAM,GAAG,CAAC,gBAAgB,EAAE;gBAC5D,MAAM,GAAG,CAAC,CAAC;IACX,SAAA;iBACI,IAAI,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACnC,SAAA;iBACI,IAAI,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACnC,SAAA;YAED,IAAI,CAAC,GAAG,MAAM,IAAI,UAAU,GAAG,gBAAgB,CAAC,GAAG,WAAW,CAAC;YAE/D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;SAMtB;IACD;;ICtID,SAAS,eAAe,GAAA;QACvB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,SAAS,cAAc,CAAwB,GAAmB,EAAA;IACjE,IAAA,IAAI,GAAG;YACN,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;YAE1D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;QAK7C,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAC3D,GAA6B,EAAE,KAAa,EAAA;IAE7C,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,qBAAsB,SAAQ,eAAe,CAAA;QAKzD,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAC9E,GAA6B,EAAE,KAAa,EAAA;YAE7C,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,YAAa,SAAQ,MAAM,CAAA;QAKvC,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAC9E,GAA6B,EAAE,KAAa,EAAA;YAE7C,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,UAAW,SAAQ,IAAI,CAAA;QAKnC,WAAY,CAAA,GAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,aAAqB,EACrF,GAA6B,EAAE,KAAa,EAAA;YAE5C,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,IAAA,MAAM,CAAC,QAAoB,EAAA;IAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,QAAA,YAAY,CAAE,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,CAAA,QAAA,EAAW,CAAC,CAAE,CAAA,CAAC,CAAC;SAC5B;IACD,CAAA;IAED,SAAS,UAAU,GAAA;QAClB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,IAAA,IAAI,GAAG,GAAkB,IAAI,aAAa,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAA,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,EAC5B;;;;;YAMC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnB,QAAA,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YAE5C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvE,CAAC,IAAI,CAAC,CAAC;IACP,KAAA;IACF,CAAC;IAEK,MAAO,IAAK,SAAQ,eAAe,CAAA;QAKxC,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAC3D,GAA6B,EAAE,KAAa,EAAE,SAAkB,EAAA;YAEjE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAPvC,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;IAQrB,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IACzB,QAAA,IAAI,SAAS;IACZ,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;;IAG3C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;;;;SAKrD;IACD;;UC3HY,cAAc,CAAA;IAM1B,IAAA,WAAA,CAAY,OAAwB,EAAA;YADpC,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;IAGrB,QAAA,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC;;IAG9B,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,GAACC,EAAI,EAAEC,KAAO,GAACC,EAAI,GAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,EAAEF,EAAI,EAAEE,EAAI,EAAEC,WAAa,CAAC,CAAC;YAC7D,GAAG,CAAC,MAAM,CAACxB,CAAG,GAACqB,EAAI,GAACA,EAAI,EAAEC,KAAO,GAACC,EAAI,GAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,GAAG,EAAEF,EAAI,EAAEE,EAAI,EAAEC,WAAa,CAAC,CAAC;;YAG9D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,QAAA,IAAI,OAAO,GAAG5B,YAAe,CAAC,UAAU,EAAE;IACzC,YAAA,UAAU,GAAG6B,eAAiB,CAAC;IAC/B,SAAA;IACD,QAAA,GAAG,CAAC,MAAM,CAAC,CAACC,QAAU,EAAE,CAACA,QAAU,CAAC,CAAC;IACrC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAEA,QAAU,EAAEC,SAAW,EAAEC,iBAAmB,CAAC,CAAC,CAAA;IAC/E,SAAA;YACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;IAC9B,YAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACf,YAAA,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE;IACnB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB,aAAA;gBAED,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5B,YAAA,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE;IACnB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB,aAAA;gBAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAClC,SAAC,CAAC,CAAC;;IAGH,QAAA,IAAI,OAAO,GAAGhC,YAAe,CAAC,WAAW,EAAE;IAC1C,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEI,CAAG,EAAEkB,QAAU,EAAEW,eAAiB,CAAC,CAAC;gBAC1D,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE5B,CAAG,GAACiB,QAAU,CAAC,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAElB,CAAG,EAAEkB,QAAU,EAAEW,eAAiB,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,SAAA;IACI,aAAA;IACJ,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE7B,CAAG,EAAEkB,QAAU,CAAC,CAAC;IACnD,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEjB,CAAG,GAACiB,QAAU,CAAC,CAAC;IAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,GAAG,EAAElB,CAAG,EAAEkB,QAAU,CAAC,CAAC;IACtD,SAAA;SACD;IACD;;ICrDD,MAAM,gCAAiC,SAAQ,cAAc,CAAA;QAM5D,WAAY,CAAA,OAAwB,EAAE,GAA6B,EAAA;YAElE,KAAK,CAAC,OAAO,CAAC,CAAC;;IAGf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAClC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACzD,GAAG,EAAE,OAAO,CAAC,CAAC;YACd,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CACnC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACzD,GAAG,EAAE,OAAO,CAAC,CAAC;;YAGd,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EACxF,GAAG,EAAE,OAAO,CAAC,CACZ,CAAC;IACH,SAAC,CAAC,CAAC;IACH,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;;IAG5B,QAAA,IAAI,OAAO,GAAGtB,YAAe,CAAC,WAAW,EACzC;IACC,YAAA,MAAM,MAAM,GAAoB,IAAI,CAAC,OAAO,CAAC;IAC7C,YAAA,MAAM,MAAM,GAAoB,IAAI,CAAC,UAAU,CAAC;gBAEhD,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAClG,GAAG,EAAE,MAAM,CAAC,CAAC;IACW,YAAA,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE7E,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACrG,GAAG,EAAE,MAAM,CAAC,CAAC;IACW,YAAA,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChF,SAAA;IAED,aAAA;IACC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;IAC5B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAC1E,GAAG,EAAE,MAAM,CAAC,CAAC;gBACb,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAC7E,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,SAAA;SACD;IACD,CAAA;IAEK,MAAO,oBAAqB,SAAQ,gCAAgC,CAAA;QAczE,WAAY,CAAA,OAAwB,EAAE,GAA6B,EAAA;IAElE,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpB,QAAA,IAAI,GAAG,GAAG,IAAI,aAAa,CAAC;;IAE5B,QAAA,GAAG,CAAC,MAAM,CAACkC,KAAO,GAACC,SAAW,GAAC,GAAG,EAAEA,SAAW,GAAC,GAAG,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAEA,SAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtE,QAAA,GAAG,CAAC,MAAM,CAACD,KAAO,GAACC,SAAW,GAAC,GAAG,EAAEA,SAAW,GAAC,GAAG,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAEA,SAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACvE,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;;YAG1B,GAAG,CAAC,MAAM,CAAC,CAAC,EAAET,KAAO,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACtB,CAAG,GAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACA,CAAG,GAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACA,CAAG,GAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;;IAGjE,QAAA,GAAG,CAAC,MAAM,CAAC8B,KAAO,GAACE,WAAa,GAAC,CAAC,EAAE,CAAC,GAACd,QAAU,CAAC,CAAC;IAClD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAEc,WAAa,EAAE/B,CAAG,GAACiB,QAAU,GAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;;YAGhF,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEI,KAAO,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEtB,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9E,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEhC,CAAG,GAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAED,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7E,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEhC,CAAG,GAACA,CAAG,GAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAED,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC7E,GAAG,CAAC,MAAM,CAACH,KAAO,EAAE,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEG,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9E,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEiC,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7E,QAAA,GAAG,CAAC,MAAM,CAACD,CAAG,GAACA,CAAG,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEiC,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;SAC7E;IACD;;ICtGK,SAAU,mBAAmB,CAAC,OAAoB,EAAA;IAEvD,IAAA,IAAI,YAAY,GAAGL,YAAe,CAAC,QAAQ,CAAC;IAE5C,IAAA,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE;IACjC,QAAA,YAAY,IAAIA,YAAe,CAAC,UAAU,CAAA;IAC1C,KAAA;IACD,IAAA,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE;IAClC,QAAA,YAAY,IAAIA,YAAe,CAAC,WAAW,CAAA;IAC3C,KAAA;IAED,IAAA,OAAO,YAAY,CAAC;IACrB,CAAC;aAEe,QAAQ,CAAC,YAA6B,EAAE,KAAa,EAAE,UAAkB,EAAA;QAExF,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9B,IAAA,OAAO,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,oBAAoB,CAAC,YAAY,EAAED,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;aAEe,WAAW,GAAA;IAE1B,IAAA,IAAIA,MAAI,EACR;IACC,QAAA,aAAa,CAACA,MAAI,CAAC,mBAAmB,CAAC,CAAC;IACxC,QAAA,aAAa,CAACA,MAAI,CAAC,gBAAgB,CAAC,CAAC;IACrC,QAAA,aAAa,CAACA,MAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,KAAA;IACD,IAAA,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;YAC1B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,KAAA;IACD,IAAA,cAAc,EAAE,CAAC;IAClB;;IC/BA,IAAI,sBAAuC,CAAC;IAC5C,IAAI,oBAAqC,CAAC;aAE1BrB,MAAI,CAAC,OAAoB,EAAE,UAAkB,EAAE,KAAa,EAAA;IAE3E,IAAA,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAElD,gBAAgB,CAAC4D,OAAK,CAAC,CAAC;QACxB,IAAI,OAAO,CAAC,kBAAkB,EAAE;IAC/B,QAAA,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACxH,KAAA;IACI,SAAA;YACJ,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9D,KAAA;IACF,CAAC;aAEeC,SAAO,GAAA;IAEtB,IAAA,WAAW,EAAE,CAAC;IACd,IAAA,IAAI,sBAAsB,EAAE;YAC3B,sBAAsB,CAAC,KAAK,EAAE,CAAC;YAC/B,sBAAsB,GAAG,IAAI,CAAC;IAC9B,KAAA;IACD,IAAA,IAAI,oBAAoB,EAAE;YACzB,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAC7B,oBAAoB,GAAG,IAAI,CAAC;IAC5B,KAAA;IACF,CAAC;IAED,SAASD,OAAK,GAAA;IAEb,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAClC,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;QACvC,SAAS,CAACmC,eAAiB,GAAC,IAAI,EAAE,CAAC,KAAa,KAAI;IACnD,QAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAG,EAAA,KAAK,EAAE,CAAC;IAC3B,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAClB,EAAE,qBAAqB,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,qBAAqB,GAAA;IAE7B,IAAA,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/C,IAAA,MAAM,CAAC,gBAAgB,CACtB,SAAS,EACT,CAAC,CAAC,KAAI,EAAGzC,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAC9B,EAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAC,CACvC,CAAC;IAEF,IAAA,oBAAoB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC7C,IAAA,MAAM,CAAC,gBAAgB,CACtB,OAAO,EACP,CAAC,CAAC,KAAI,EAAGA,MAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,EAChC,EAAC,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAC,CACrC,CAAC;IAEF,IAAA0C,QAAM,EAAE,CAAC;IACV,CAAC;IAED,SAASA,QAAM,GAAA;IAEd,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,IAAA1C,MAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE2C,qBAAuB,CAAC,CAAC;;IAEpF,IAAA3C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE4C,kBAAoB,CAAC,CAAC;IAC3E,IAAA5C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE6C,kBAAoB,CAAC,CAAC;IAC5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DC6HO,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;OAD3C,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA8C,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;;kIAA1C,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;IADb,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4DAQ3C,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;OAH9C,UAKK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAJJ,UAGU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAFT,UAAqB,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACnB,UAA8C,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;;mIAA1C,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;IAHhB,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAYnD,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA8D,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAA3B,GAAU,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAStC,GAAc,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;OAHtB,UAKK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAJJ,UAGU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAFT,UAAyC,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACvC,UAAsB,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;;;;IAHI,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAW9C,CAAA,IAAA,SAAA,sBAAA,GAAc,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;yCAwCvB,GAAe,CAAA,CAAA,CAAA,IAAA5D,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;IAxCf,GAAA,uBAAA,GAAc,QAAK,IAAI,EAAA;;;;;;;;;;;;;+BAwCvB,GAAe,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAfX,GAAO,CAAA,CAAA,CAAA,CAAC,kBAAkB,KAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAxB3C,UAoCK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAnCJ,UAkCK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjCJ,UAA2E,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;;OAC3E,UA+BU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;OA9BT,UAA4B,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OAC5B,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAA6F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAApB,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,WAAW,CAAA;;OAC5F,UAA+C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAEhD,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAgG,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAArB,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,YAAY,CAAA;;OAC/F,UAA6C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAE9C,UAMK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OALJ,UAAa,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;OACb,UAA6F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAzB,GAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;OACjF,UAA+B,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC/B,UAA+F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAA1B,GAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;OAClF,UAAiC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAElC,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAwF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAA3B,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,kBAAkB,CAAA;;OACvF,UAAgD,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;OASjD,UAEK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAyD,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;;;;yDA9BxB,GAAc,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;mDA8BZ,GAAQ,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;IA1B8B,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,WAAW,CAAA;;;;IAIjB,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,YAAY,CAAA;;;;IAK3B,IAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;;;IAEZ,IAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;;;IAIrB,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,kBAAkB,CAAA;;;uBAGnF,GAAO,CAAA,CAAA,CAAA,CAAC,kBAAkB,KAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAE/B,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;sCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;IADa,GAAA,gBAAA,GAAO,IAAC,iBAAiB,KAAA,KAAA,CAAA,EAAA,mBAAA,CAAA,gCAAA,GAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA;;;;OAA7C,UAIQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;IAJY,GAAA,aAAA,CAAA,MAAA,cAAA,GAAO,IAAC,iBAAiB,CAAA,CAAA;;;;;;;;;oCACrC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;qCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAAJ,MAAI,CAAA;;;;IADa,IAAA,aAAA,CAAA,MAAA,cAAA,GAAO,IAAC,iBAAiB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;IAEZ,CAAA,IAAA,OAAA,YAAA,GAAI,KAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;IAA7B,GAAA,MAAA,CAAA,OAAA,GAAA,kBAAA,YAAA,GAAI,KAAC,QAAQ,CAAA;;;;;OAA5B,UAAqD,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;IAAtB,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,YAAA,GAAI,KAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;IAA7B,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,kBAAA,MAAA,kBAAA,YAAA,GAAI,KAAC,QAAQ,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAkB1B,GAAoB,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;IASpB,CAAA,IAAA,SAAA,4BAAA,GAAoB,QAAK,KAAK,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAdtC,UAoBK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAnBJ,UAkBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjBJ,UAAmE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OACnE,UAeU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;OAdT,UAAqC,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;8DAFH,GAAW,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;oCAGxC,GAAoB,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;IASpB,GAAA,6BAAA,GAAoB,QAAK,KAAK,EAAA;;;;;;;;;;;;;;;;IAdG,KAAA,UAAA,GAAA,oBAAA,CAAA,IAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAMlD,GAAW,CAAA,EAAA,CAAA,CAAA;;;;oCAAhB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;qCAAC,GAAW,CAAA,EAAA,CAAA,CAAA;;;;mCAAhB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAEH,CAAA,IAAA,QAAA,kBAAA,GAAU,KAAC,iBAAiB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;iBAAC,yDAC9B,CAAA,CAAA;;;;;;;;;;;;;;;;;OAFD,UAIK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;OAFJ,UAAgF,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChF,UAAgF,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;IAF/E,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,mBAAA,IAAA,IAAA,QAAA,MAAA,QAAA,kBAAA,GAAU,KAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhC,UAA+C,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;OAC9C,UAAiE,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;iEAA9B,GAAc,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA7FnD,CAAA,IAAA,SAAA,sBAAA,GAAc,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;IAKvB,CAAA,IAAA,SAAA,iBAAA,GAAS,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;qCAYjB,GAAU,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;IAOX,CAAA,IAAA,SAAA,oBAAA,GAAY,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;0CAWrB,GAAgB,CAAA,CAAA,CAAA,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;8BApBR8D,YAAU,CAAA,CAAA;;;;oCADY,GAAU,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAhB9C,UAuGM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;OAvFL,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwB,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;IAfpB,GAAA,uBAAA,GAAc,QAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;IAKvB,GAAA,kBAAA,GAAS,QAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;;gDASY,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA;;;2BAGvC,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;IAOX,GAAA,qBAAA,GAAY,QAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;gCAWrB,GAAgB,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA7Nf,MAAAA,YAAU,GAAG,WAAW,CAAA;;;;;SAR1B,IAAI,CAAA;SACJ,QAAQ,CAAA;;;IAGR,CAAA,IAAA,gBAAgB,GAAG,IAAI,CAAA;;WACrB,OAAO,GAAA,IAAOC,WAAgB,EAAA,CAAA;;;IAMhC,CAAA,IAAA,YAAY,GAAG,KAAK,CAAA;;IACpB,CAAA,IAAA,eAAe,GAAG,KAAK,CAAA;IACvB,CAAA,IAAA,cAAc,GAAG,IAAI,CAAA;IACrB,CAAA,IAAA,SAAS,GAAG,KAAK,CAAA;IACjB,CAAA,IAAA,UAAU,GAAG,IAAI,CAAA;IACjB,CAAA,IAAA,cAAc,GAAG,KAAK,CAAA;IAEtB,CAAA,IAAA,oBAAoB,GAAG,KAAK,CAAA;SAC5B,WAAW,GAAA,EAAA,CAAA;IAEX,CAAA,IAAA,cAAc,GAAG,gBAAgB,CAAA;IACjC,CAAA,IAAA,sCAAsC,GAAG,EAAE,CAAA;SAC3C,qCAAqC,CAAA;;KAEzC,OAAO,CAAA,YAAA;uBACN,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAChF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;sBAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IAClB,EAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;;KAG1C,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,qCAAqC,CAAA,CAAA;IACnD,EAAAC,SAAY,EAAA,CAAA;;;WAGP,QAAQ,GAAA,YAAA;IAEb,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,KAAK,CAAA,CAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,IAAI,CAAA,CAAA;IACb,EAAA,MAAA,YAAY,GAAGC,mBAAwB,CAAC,OAAO,CAAA,CAAA;;IAE/C,EAAA,MAAA,sBAAsB,GAAG,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,mBAAA,CAAA,EAAA;IAClG,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAG,IAAI,CAAC,SAAS,CAAA;QACpB,iBAAiB,EAAG,OAAO,CAAC,iBAAiB;QAC7C,iBAAiB,EAAG,OAAO,CAAC,iBAAiB;IAC7C,IAAA,WAAW,EAAG,YAAY;QAC1B,sBAAsB,EAAG,OAAO,CAAC,kBAAA;;;;IAG7B,EAAA,MAAA,kBAAkB,SAAS,sBAAsB,CAAA;YACjD,cAAc,GAAA,MAAS,kBAAkB,CAAC,IAAI,EAAA,CAAA;YAC9C,KAAK,GAAY,cAAc,CAAC,KAAK,CAAA;IAC3C,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;IACpB,EAAA,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAA,CAAA;;UAC/C,kBAAkB,CAAC,MAAM,IAAI,GAAG,EAAA;OAEnC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA,CAAA;OAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;wBACjC,sCAAsC,GAAG,cAAc,CAAC,OAAO,CAAA,CAAA;IAC/D,GAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAI,CAAA,CAAA;IAChB,GAAA,OAAO,CAAC,KAAK,EAAA,CAAA;IACb,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;OACzC,UAAU;;IACT,KAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,IAAI,CAAA,CAAA;IACvB,KAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,KAAK,CAAA,CAAA;;QAEf,IAAI;;iBAEC,KAAK,EAAA;IAEb,GAAA,qCAAqC,GAAG,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAA,CAAA;;;IAE1E,GAAAC,MAAS,CAAC,OAAO,EAAEJ,YAAU,EAAE,KAAK,CAAA,CAAA;;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;;;IAMd,CAAA,MAAA,wBAAwB,SAAS,UAAgB,IAAA;IAEtD,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,KAAK,CAAA,CAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,IAAI,CAAA,CAAA;MACnB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA,CAAA;MAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;;IAClB,EAAA,IAAA,UAAU,CAAC,KAAK,EAAA;IAEnB,GAAA,qCAAqC,GAAG,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAA,CAAA;IAC1E,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAA,OAAA,CAAA,CAAA;IACxD,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAA,OAAA,CAAA,CAAA;uBACxD,OAAO,CAAC,kBAAkB,GAAG,IAAI,EAAA,OAAA,CAAA,CAAA;uBACjC,OAAO,CAAC,eAAe,GAAG,IAAI,EAAA,OAAA,CAAA,CAAA;OAC9BI,MAAS,CAAC,OAAO,EAAEJ,YAAU,EAAE,UAAU,CAAC,KAAK,CAAA,CAAA;IAC/C,GAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;IACpB,GAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;;WAId,gBAAgB,GAAA,MAAA;MACrB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;;IAC/B,EAAA,IAAA,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,EAAA;IAE/C,GAAA,aAAa,CAAC,qCAAqC,CAAA,CAAA;OACnD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAA,CAAA;IACzC,GAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;;IACpB,GAAA,SAAS,CAAC,UAAU;IACpB,KAAA,YAAA,CAAA,EAAA,EAAA,sCAAsC,GAAG,4BAA5C,CAAA;IACK,KAAA,YAAA,CAAA,EAAA,EAAA,sCAAsC,GAAG,yBAAyB,CAAA,CAAA;;IACpE,GAAA,SAAS,CAAC,UAAU;IAAG,KAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAI,CAAA;IAAG,KAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,IAAI,CAAA,CAAA;;OAC/D,UAAU;;SACT,SAAS,EAAA,CAAA;IACT,KAAA,YAAA,CAAA,EAAA,EAAA,sCAAsC,GAAG,EAAE,CAAA,CAAA;IAC3C,KAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,KAAK,CAAA,CAAA;0BAC5B,WAAW,GAAA,EAAA,CAAA,CAAA;SACX,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAA,CAAA;;QACzC,IAAI;;;;;WAKH,WAAW,GAAA,MAAA;IAChB,EAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,IAAI,CAAA,CAAA;IACrB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;;;WAGlB,cAAc,GAAA,YAAA;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,KAAK,CAAA,CAAA;IACtB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;uBACtB,WAAW,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,wBAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;MACjB,WAAW,CAAC,MAAM,KAAK,CAAC;IAAG,IAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,IAAI,CAAA;IAAG,IAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,KAAK,CAAA,CAAA;;;IAGhF,CAAA,MAAA,gBAAgB,SAAS,UAAU,IAAA;YAClC,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,oBAAA,CAAA,EAAA;IACzE,GAAA,MAAM,EAAE,MAAM;OACd,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,GACnB,KAAK,EAAG,UAAU,CAAC,KAAA,EAAA,CAAA;IAGpB,GAAA,CAAA,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAChB,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA,CAAA,CAAA;;MACjC,cAAc,EAAA,CAAA;;;IAGT,CAAA,MAAA,gBAAgB,SAAS,UAAgB,IAAA;IACxC,EAAA,MAAA,GAAG,GAAU,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,mBAAA,CAAA,EAAA;IACtF,GAAA,MAAM,EAAE,MAAM;OACd,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,GACnB,KAAK,EAAG,UAAU,CAAC,KAAA,EAAA,CAAA;SAGpB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAChB,KAAK,CAAC,KAAK,IAAA;OACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA,CAAA;;;UAEd,GAAG,CAAC,MAAM,KAAK,GAAG,EAAA;OAErB,cAAc,EAAA,CAAA;IACd,GAAA,wBAAwB,CAAC,UAAU,CAAA,CAAA;;;;IAIpC,EAAA,wBAAwB,CAAC,UAAU,CAAA,CAAA;;;cAG3B,UAAU,GAAA;MAClB,SAAS,EAAA,CAAA;;;cAGD,SAAS,GAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,IAAI,CAAA,CAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,IAAI,CAAA,CAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,KAAK,CAAA,CAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,KAAK,CAAA,CAAA;IACtB,EAAA,OAAO,CAAC,KAAK,EAAA,CAAA;IACb,EAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;IACzC,EAAAE,SAAY,EAAA,CAAA;;;;;;;;;;;IAqDkE,EAAA,OAAO,CAAC,WAAW,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAIjB,EAAA,OAAO,CAAC,YAAY,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAK3B,EAAA,OAAO,CAAC,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAEZ,EAAA,OAAO,CAAC,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAIrB,EAAA,OAAO,CAAC,kBAAkB,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAInE,EAAA,OAAO,CAAC,iBAAiB,GAAA,YAAA,CAAA,IAAA,CAAA,CAAA;;;;;IAwBD,CAAA,MAAA,aAAA,GAAA,UAAA,IAAA,gBAAgB,CAAC,UAAU,CAAA,CAAA;IAC3B,CAAA,MAAA,eAAA,GAAA,UAAA,IAAA,gBAAgB,CAAC,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC5OlE,CAAA,IAAA,OAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;IAAlB,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAFJ,CAAA,IAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;iBAAnB,OAAK,CAAA,CAAA;;iBAAe,GAAC,CAAA,CAAA;;;;;OAA5B,UAAoC,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAAhC,UAA4B,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;;;;;;IAAnB,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAFV,CAAA,IAAA,QAAA,SAAA,GAAC,MAAG,CAAC,GAAA,EAAA,CAAA;;;;;6BAMjB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA;;;;6BAClB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;6BACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;6BACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA;;;;;IARpB,EAAA,aAAA,GAAI,CAAC,CAAA,CAAA,CAAA,QAAQ,qBAAK,GAAW,IAAC,QAAQ,EAAA,OAAAhE,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAF5C,UAWI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAVH,UAA2B,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;;;;OAM3B,UAA4B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC5B,UAA6B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC7B,UAA6B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC7B,UAA8B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;uEAHzB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEAClB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAXpB,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;oCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OApBX,UAsCK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OArCJ,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAe,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAGjB,UA+BK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA9BJ,UA6BK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA5BJ,UA2BO,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;OA1BN,UASO,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OARN,UAOI,CAAA,KAAA,EAAA,EAAA,CAAA,CAAA;OANH,UAAqB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACrB,UAA4B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OAC5B,UAAuB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACvB,UAAwB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACxB,UAAwB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACxB,UAAgC,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OAGlC,UAeO,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;kCAdC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;mCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA3CN,WAAW,CAAA;SACX,QAAQ,GAAA,EAAA,CAAA;SACR,UAAU,CAAA;;KACd,OAAO,CAAA,YAAA;sBACN,WAAW,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;sBAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,oBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IAClB,EAAA,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAA,CAAA;;;KAG5C,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,UAAU,CAAA,CAAA;;;cAGhB,WAAW,GAAA;MACnB,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,oBAAA,CAAA,CAAA,CACnE,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CACjB,IAAI,CAAE,CAAC,IAAA,YAAA,CAAA,CAAA,EAAI,QAAQ,GAAG,CAAC,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICVpB,SAAU,IAAI,CAAC,YAA6B,EAAE,KAAa,EAAE,UAAkB,EAAE,aAAqB,EAAA;IAE3G,IAAA,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE1C,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;aAEe,OAAO,GAAA;IAEtB,IAAA,WAAW,EAAE,CAAC;IACf,CAAC;IAED,SAAS,KAAK,GAAA;IAEb,IAAA,MAAM,EAAE,CAAC;IACV,CAAC;IAED,SAAS,MAAM,GAAA;IAEd,IAAAgB,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE4C,kBAAoB,CAAC,CAAC;IACpF,IAAA5C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE6C,kBAAoB,CAAC,CAAC;IAC5E;;;;;;;;;;;;;;;;;ICHI,CAAA,IAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA;;;IAAQ,CAAA,IAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;iBADzC,IACd,CAAA,CAAA;;iBAAyB,UAAM,CAAA,CAAA;;iBAAyB,UACzD,CAAA,CAAA;;iBAAK,IAAE,CAAA,CAAA;wCAAC,GAAkB,CAAA,CAAA,CAAA,CAAA,CAAA;iBAAC,GAC5B,CAAA,CAAA;;;;;;;;;OAJD,UAKI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAJH,UAGQ,CAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;OADP,UAAK,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;IADH,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAAQ,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;qFAChD,GAAkB,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;WA9BhB,KAKV,EAAA,GAAA,OAAA,CAAA;IAEG,CAAA,IAAA,kBAAkB,GAAG,EAAE,CAAA;;KAE3B,OAAO,CAAA,YAAA;IACF,EAAA,IAAA,KAAK,CAAC,WAAW,KAAK,YAAY,CAAC,QAAQ,EAAA;IAC9C,GAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,GAAG,UAAU,CAAA,CAAA;;IAG3B,GAAA,IAAA,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,UAAU,EAAA;IAC9C,IAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,aAAa,CAAA,CAAA;;;IAEhC,GAAA,IAAA,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,EAAA;YAC3C,kBAAkB,EAAA;IAAI,KAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,IAAI,CAAA,CAAA;;;IACpD,IAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,cAAc,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OC0GtC,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAAkE,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAA/B,GAAU,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAvBtC,GAAe,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;OAHvB,UAuBK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAtBJ,UAoBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAnBJ,UAkBU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCALD,GAAS,CAAA,CAAA,CAAA,CAAA;;;;oCAAd,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OATN,UAAuB,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;OACxB,UAMK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OALJ,UAAa,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;OACb,UAAqF,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;qDAAjB,GAAK,CAAA,CAAA,CAAA,CAAA;;OACzE,UAA+B,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;OAC/B,UAAuF,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;qDAAlB,GAAK,CAAA,CAAA,CAAA,CAAA;;OAC1E,UAAiC,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;OAElC,UAIM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;sDAT+D,GAAK,CAAA,CAAA,CAAA,CAAA;;;;sDAEJ,GAAK,CAAA,CAAA,CAAA,CAAA;;;;mCAInE,GAAS,CAAA,CAAA,CAAA,CAAA;;;;mCAAd,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;4BAAJ,MAAI,EAAA,CAAA,GAAA,WAAA,CAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;sCAAJ,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAXN,UAAkC,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAYX,GAAK,CAAA,EAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;4EAAL,GAAK,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAjB5B,GAAU,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;8BAHF,UAAU,CAAA,CAAA;;;;oCADY,GAAU,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAF9C,UAqCM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAnCL,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwB,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;gDADU,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAnFvC,MAAA,UAAU,GAAG,WAAW,CAAA;;;;;SAJ1B,IAAI,CAAA;SACJ,QAAQ,CAAA;IAIR,CAAA,IAAA,KAAK,GAAG,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA2Bb,SAAS,GAAA,EAAA,CAAA;;;IAGT,CAAA,IAAA,UAAU,GAAG,IAAI,CAAA;;IACjB,CAAA,IAAA,eAAe,GAAG,KAAK,CAAA;;KAG3B,OAAO,CAAA,YAAA;MACN,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAChF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;MAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;IAEZ,EAAA,MAAA,oBAAoB,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,sBAAA,CAAA,CAAA,CAAA;;YACjG,gBAAgB,GAAA,MAAS,oBAAoB,CAAC,IAAI,EAAA,CAAA;IACxD,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,gBAAgB,CAAA,CAAA;MAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA,CAAA;IACnB,EAAA,IAAA,SAAS,CAAC,MAAM,IAAI,CAAC,EACxB,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;MACvB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;;KAGtB,SAAS,CAAA,YAAA;IACR,EAAAM,OAAqB,EAAA,CAAA;;;oBAGP,iBAAiB,CAAC,aAAqB,EAAE,YAAwC,EAAA;MAC/FC,IAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,CAAA,CAAA;IACjE,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;cAGV,UAAU,GAAA;MAClB,SAAS,EAAA,CAAA;;;oBAGK,SAAS,GAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,IAAI,CAAA,CAAA;IACjB,EAAAD,OAAqB,EAAA,CAAA;;;sBAErB,SAAS,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACrF,sBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;MAClB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA,CAAA;IACnB,EAAA,IAAA,SAAS,CAAC,MAAM,IAAI,CAAC,EACxB,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;MACvB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;;;;;;;;;;MAyBmD,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;MAEJ,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;mCAKjC,CAAC,KAAK,iBAAiB,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,WAAW,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC5G/G,MAAM,aAAa,GAAG;IAC7B,EAAE,GAAG,EAAE,UAAU;IACjB,EAAE,MAAM,EAAE,uBAAuB;IACjC,EAAE,OAAO,EAAE,IAAI;IACf,EAAE,YAAY,EAAE,aAAa;IAC7B,EAAE,UAAU,GAAG,OAAO;IACtB,EAAE,UAAU,EAAEvE,MAAI,CAAC;IACnB,IAAI,SAAS,EAAE,WAAW;IAC1B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAC;IAClD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,YAAY,EAAEA,MAAI,CAAC;IACrB,IAAI,SAAS,EAAE,WAAW;IAC1B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAC;IACpD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;AACJ;IACA,EAAE,sBAAsB,EAAE,sBAAsB;IAChD,EAAE,GAAG,EAAE,QAAQ;IACf,CAAC;;;;;;;;;;;wBCpCe,aAAa,EAAA;;;;yDAAuB,GAAgB,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAb5D,CAAA,MAAA,gBAAgB,GAAI,KAAK,IAAA;IAC7B,EAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAAA,CAAA;;;IAGpD,EAAA,OAAO,CAAC,sBAAsB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTlC,UAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QACnB,MAAM,EAAE,QAAQ,CAAC,IAAI;IACrB,IAAA,KAAK,EAAE;;IAEN,KAAA;IACD,CAAA;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Chat_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status !== 200}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,C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C5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_warning.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_warning.svelte new file mode 100644 index 00000000..ad9c747a --- /dev/null +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_warning.svelte @@ -0,0 +1,11 @@ + + +

    + {content} +

    diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte index eba56734..fd517702 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte @@ -1,13 +1,16 @@ - - @@ -54,6 +60,9 @@
    + {#if response_status !== 200} + + {/if} From 23105600a5fdb8362eb76ccd6a495c9d9694fe07 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Fri, 6 Jan 2023 16:56:36 +0100 Subject: [PATCH 14/35] wip trying to create first instance of chatroom in db --- .../nestjs/api_back/src/chat/chat.module.ts | 2 +- .../nestjs/api_back/src/chat/chat.service.ts | 26 +++++--- .../api_back/src/chat/dto/joinRoom.dto.ts | 3 +- .../{chat.entity.ts => chatroom.entity.ts} | 0 .../src/users/entities/user.entity.ts | 2 +- .../svelte/api_front/public/build/bundle.js | 64 +++++++++---------- .../api_front/public/build/bundle.js.map | 2 +- .../src/pieces/chat/Layout_create.svelte | 8 ++- 8 files changed, 60 insertions(+), 47 deletions(-) rename srcs/requirements/nestjs/api_back/src/chat/entities/{chat.entity.ts => chatroom.entity.ts} (100%) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts index 875ccb25..326abb7c 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.module.ts @@ -5,7 +5,7 @@ import { ChatGateway } from './chat.gateway'; import { UsersModule } from 'src/users/users.module'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { Chatroom } from './entities/chat.entity'; +import { Chatroom } from './entities/chatroom.entity'; import { User } from 'src/users/entities/user.entity'; @Module({ diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index aeaf7cde..720375f7 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -1,6 +1,6 @@ import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; import { User } from 'src/users/entities/user.entity'; -import { Chatroom } from './entities/chat.entity'; +import { Chatroom } from './entities/chatroom.entity'; import { Repository } from 'typeorm'; import { InjectRepository } from '@nestjs/typeorm'; import { joinRoomDto } from './dto/joinRoom.dto'; @@ -21,18 +21,26 @@ export class ChatService { async getRooms() { - // get rooms - // return rooms; + } + + async getUserRooms() + { } async addUserToRoom(user: User, joinRoomDto: joinRoomDto) { - const room = await this.chatroomRepository.find({ where: { name: joinRoomDto.room_name } }); - { - console.log(HttpStatus); - // throw new HttpException(`This room already exist`, HttpStatus.CONFLICT); - throw new HttpException(`This room already exist`, HttpStatus.OK); - } + const room = await this.chatroomRepository.findOneBy({ name : joinRoomDto.room_name }) + console.log(room); + if (room) + throw new HttpException(`This room already exist`, HttpStatus.CONFLICT); + + const newChatroom = new Chatroom(); + newChatroom.name = joinRoomDto.room_name; + newChatroom.type = joinRoomDto.room_type; + newChatroom.owner = user; + const savedChatroom = this.chatroomRepository.save(newChatroom); + console.log(savedChatroom); + return "good room"; } diff --git a/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts b/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts index 026df464..1224d395 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts @@ -1,4 +1,4 @@ -import { IsBoolean, IsEmpty, IsInt, IsNotEmpty, IsNumber, IsString, IsOptional } from "class-validator"; +import { IsBoolean, IsEmpty, IsIn, IsInt, IsNotEmpty, IsNumber, IsString, IsOptional } from "class-validator"; import { IsNull } from "typeorm"; export class joinRoomDto { @@ -7,6 +7,7 @@ export class joinRoomDto { room_name : string @IsString() @IsNotEmpty() + @IsIn(['public', 'private', 'direct']) room_type : string @IsString() @IsOptional() diff --git a/srcs/requirements/nestjs/api_back/src/chat/entities/chat.entity.ts b/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts similarity index 100% rename from srcs/requirements/nestjs/api_back/src/chat/entities/chat.entity.ts rename to srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts diff --git a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts index f4f66890..160af9b2 100644 --- a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts +++ b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts @@ -3,7 +3,7 @@ import { IsEmail, Length } from "class-validator"; import { Column, Entity, JoinColumn, JoinTable, ManyToMany, OneToMany, OneToOne, PrimaryGeneratedColumn, Unique } from "typeorm"; import { Friendship } from "../../friendship/entities/friendship.entity"; import { UserStats } from "./userStat.entities"; -import { Chatroom } from "src/chat/entities/chat.entity"; +import { Chatroom } from "src/chat/entities/chatroom.entity"; @Entity('user') diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index e05875a0..fa47c2e4 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -10471,7 +10471,7 @@ var app = (function () { const { console: console_1$8 } = globals; const file$h = "src/pieces/chat/Layout_create.svelte"; - // (37:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status !== 200}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,C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C5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Chat_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status !== 200}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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A,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;O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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte index fd517702..ec2a8b92 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte @@ -34,8 +34,12 @@ }); response_data = await response.json(); console.log(response_data); - response_status = response_data.statusCode; - response_message = response_data.message; + if (response_data.statusCode) + response_status = response_data.statusCode; + else + response_status = 200; + if (response_data.message) + response_message = response_data.message; } From 8be84e84423477553e9c49b629a4de27f1b2c255 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Fri, 6 Jan 2023 17:13:59 +0100 Subject: [PATCH 15/35] rooms creation ok in db --- .../nestjs/api_back/src/chat/chat.service.ts | 2 +- .../nestjs/api_back/src/chat/dto/joinRoom.dto.ts | 8 +++++--- .../api_back/src/chat/entities/chatroom.entity.ts | 12 +++++------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index 720375f7..ae0c1f08 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -38,7 +38,7 @@ export class ChatService { newChatroom.name = joinRoomDto.room_name; newChatroom.type = joinRoomDto.room_type; newChatroom.owner = user; - const savedChatroom = this.chatroomRepository.save(newChatroom); + const savedChatroom = await this.chatroomRepository.save(newChatroom); console.log(savedChatroom); return "good room"; diff --git a/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts b/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts index 1224d395..d395517f 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts @@ -1,14 +1,16 @@ -import { IsBoolean, IsEmpty, IsIn, IsInt, IsNotEmpty, IsNumber, IsString, IsOptional } from "class-validator"; +import { IsBoolean, IsEmpty, IsInt, IsNotEmpty, IsNumber, IsString, IsOptional } from "class-validator"; import { IsNull } from "typeorm"; export class joinRoomDto { + @IsString() @IsNotEmpty() room_name : string + @IsString() @IsNotEmpty() - @IsIn(['public', 'private', 'direct']) - room_type : string + room_type : 'public' | 'private' | 'direct'; + @IsString() @IsOptional() room_password : string diff --git a/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts b/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts index fa482347..bcdf0a74 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts @@ -9,18 +9,16 @@ import { User } from 'src/users/entities/user.entity'; @Entity('chatroom') export class Chatroom { @PrimaryGeneratedColumn() - id: number; + id: number; @Column() - name: string; + name: string; @Column() - type: 'public' | 'private' | 'direct'; - - @Column({ nullable: true }) - protection: boolean; + type: 'public' | 'private' | 'direct'; @ManyToOne(type => User, user => user.ownedRoom) - owner: User; + owner: User; + } From 41dbee1cc0a09e152e9eaaf518d2c113603c4087 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Fri, 6 Jan 2023 19:47:47 +0100 Subject: [PATCH 16/35] creation of table room is ok --- .../nestjs/api_back/src/chat/chat.service.ts | 7 ++++++- .../api_back/src/chat/entities/chatroom.entity.ts | 13 +++++++++---- .../api_back/src/friendship/friendship.service.ts | 7 ++++++- .../api_back/src/users/entities/user.entity.ts | 10 +++++++--- 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index ae0c1f08..82c18ae8 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -29,7 +29,11 @@ export class ChatService { async addUserToRoom(user: User, joinRoomDto: joinRoomDto) { - const room = await this.chatroomRepository.findOneBy({ name : joinRoomDto.room_name }) + //const room = await this.chatroomRepository.findOneBy({ name : joinRoomDto.room_name }); + const room = await this.chatroomRepository + .createQueryBuilder('chatroom') + .where('chatroom.name = :name', { name: joinRoomDto.room_name }) + .getOne(); console.log(room); if (room) throw new HttpException(`This room already exist`, HttpStatus.CONFLICT); @@ -38,6 +42,7 @@ export class ChatService { newChatroom.name = joinRoomDto.room_name; newChatroom.type = joinRoomDto.room_type; newChatroom.owner = user; + newChatroom.users = [user]; const savedChatroom = await this.chatroomRepository.save(newChatroom); console.log(savedChatroom); diff --git a/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts b/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts index bcdf0a74..d8185eb6 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts @@ -2,6 +2,8 @@ import { Entity, Column, ManyToOne, + ManyToMany, + JoinTable, PrimaryGeneratedColumn } from "typeorm"; import { User } from 'src/users/entities/user.entity'; @@ -14,11 +16,14 @@ export class Chatroom { @Column() name: string; - @Column() - type: 'public' | 'private' | 'direct'; + @Column() + type: string; - @ManyToOne(type => User, user => user.ownedRoom) - owner: User; + @ManyToOne(type => User, user => user.ownedRooms) + owner: User; + @ManyToMany(type => User) + @JoinTable() + users: User[]; } diff --git a/srcs/requirements/nestjs/api_back/src/friendship/friendship.service.ts b/srcs/requirements/nestjs/api_back/src/friendship/friendship.service.ts index cee750cd..40fc4230 100644 --- a/srcs/requirements/nestjs/api_back/src/friendship/friendship.service.ts +++ b/srcs/requirements/nestjs/api_back/src/friendship/friendship.service.ts @@ -92,7 +92,12 @@ export class FriendshipService { throw new HttpException(`The addressee does not exist.`, HttpStatus.NOT_FOUND); if (createFriendshipDto.status !== FriendshipStatus.REQUESTED && createFriendshipDto.status !== FriendshipStatus.BLOCKED) throw new HttpException(`The status is not valid.`, HttpStatus.NOT_FOUND); - const friendship = await this.friendshipRepository.findOneBy({ sender: creator, receiver: receiver }); + //const friendship = await this.friendshipRepository.findOneBy({ sender: creator, receiver: receiver }); + const friendship = await this.friendshipRepository + .createQueryBuilder('friendship') + .where('friendship.sender = :sender', { sender: creator }) + .andWhere('friendship.receiver = :receiver', { receiver: receiver }) + .getOne(); if (friendship) { if (friendship.status && friendship.status === FriendshipStatus.ACCEPTED) throw new HttpException(`The friendship request has already been accepted.`, HttpStatus.OK); diff --git a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts index 160af9b2..639c50f8 100644 --- a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts +++ b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts @@ -50,10 +50,14 @@ export class User { @OneToMany(type => Friendship , (friendship) => friendship.receiver) receivedFriendRequest: Friendship[]; - @OneToMany(type => Chatroom, chatroom => chatroom.owner) - ownedRoom: Chatroom[]; - @JoinColumn() @OneToOne(() => UserStats, { cascade: true }) stats: UserStats; + + @OneToMany(type => Chatroom, chatroom => chatroom.owner) + ownedRooms: Chatroom[]; + + @ManyToMany(type => Chatroom) + @JoinTable() + userRooms: Chatroom[]; } From d21c1d1e4ecd3ae4cac8790e324c1881c5398816 Mon Sep 17 00:00:00 2001 From: simplonco Date: Sat, 7 Jan 2023 17:27:15 +0100 Subject: [PATCH 17/35] wip try to make chatrooms db remember users --- .../api_back/src/chat/chat.controller.ts | 15 +- .../nestjs/api_back/src/chat/chat.service.ts | 33 +- .../src/chat/entities/chatroom.entity.ts | 16 +- .../src/users/entities/user.entity.ts | 12 +- .../svelte/api_front/public/build/bundle.js | 464 +++++++++++++----- .../api_front/public/build/bundle.js.map | 2 +- .../api_front/src/pieces/chat/Chat.svelte | 1 + .../src/pieces/chat/Layout_create.svelte | 19 +- .../src/pieces/chat/Layout_home.svelte | 29 +- .../src/pieces/chat/Layout_room.svelte | 4 +- .../api_front/src/pieces/chat/Socket.ts | 5 +- 11 files changed, 425 insertions(+), 175 deletions(-) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts index 7acd4c89..07c260bd 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts @@ -14,24 +14,19 @@ export class ChatController { @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Get('rooms') - async getRooms() + async getRooms(@Req() req, @Res() res) { - const rooms = await this.chatService.getRooms(); - return { rooms }; + console.log("in getRooms"); + return await this.chatService.getRooms(req.user, res); } @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Post('join') - async joinRoom(@Body() joinRoomDto: joinRoomDto, @Req() req) + async joinRoom(@Body() joinRoomDto: joinRoomDto, @Req() req, @Res() res) { const user: User = req.user; - - let room = await this.chatService.addUserToRoom(user, joinRoomDto); - - //return { message: 'Successfully joined room.' }; - //return res.status(HttpStatus.BAD_REQUEST).json({message : 'You can\'t grant a ticket to another user'}); - return { room }; + return await this.chatService.addUserToRoom(user, joinRoomDto, res); } @UseGuards(AuthenticateGuard) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index 82c18ae8..028ca17e 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -1,5 +1,6 @@ -import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import { HttpException, HttpStatus, Injectable, Res } from '@nestjs/common'; import { User } from 'src/users/entities/user.entity'; +import { UsersService } from 'src/users/users.service'; import { Chatroom } from './entities/chatroom.entity'; import { Repository } from 'typeorm'; import { InjectRepository } from '@nestjs/typeorm'; @@ -9,6 +10,7 @@ import { joinRoomDto } from './dto/joinRoom.dto'; export class ChatService { constructor( + private usersService: UsersService, @InjectRepository(User) private readonly userRepository: Repository, @InjectRepository(Chatroom) @@ -19,17 +21,22 @@ export class ChatService { // return server.emit('message', message); //} - async getRooms() + async getRooms(user: User, @Res() res) { + + /* + const room = await this.chatroomRepository + .createQueryBuilder('chatroom') + .where(':user_id IN chatroom.users', { user_id: user.fortyTwoId }) + .getMany(); + console.log(room); + */ + + //return chatrooms; } - async getUserRooms() + async addUserToRoom(user: User, joinRoomDto: joinRoomDto, @Res() res) { - } - - async addUserToRoom(user: User, joinRoomDto: joinRoomDto) - { - //const room = await this.chatroomRepository.findOneBy({ name : joinRoomDto.room_name }); const room = await this.chatroomRepository .createQueryBuilder('chatroom') .where('chatroom.name = :name', { name: joinRoomDto.room_name }) @@ -38,15 +45,15 @@ export class ChatService { if (room) throw new HttpException(`This room already exist`, HttpStatus.CONFLICT); + // create chatroom const newChatroom = new Chatroom(); newChatroom.name = joinRoomDto.room_name; newChatroom.type = joinRoomDto.room_type; - newChatroom.owner = user; - newChatroom.users = [user]; - const savedChatroom = await this.chatroomRepository.save(newChatroom); - console.log(savedChatroom); + newChatroom.owner = user.fortyTwoId; + newChatroom.users = [user.fortyTwoId]; + this.chatroomRepository.save(newChatroom); - return "good room"; + return res.status(HttpStatus.OK).json({ room_name: joinRoomDto.room_name, message: "successfull room creation" }); } async removeUserFromRoom(user: User, room_name: string) diff --git a/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts b/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts index d8185eb6..91cee9ed 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/entities/chatroom.entity.ts @@ -19,11 +19,17 @@ export class Chatroom { @Column() type: string; - @ManyToOne(type => User, user => user.ownedRooms) - owner: User; +// @ManyToOne(type => User, user => user.ownedRooms) +// owner: User; +// +// @ManyToMany(type => User) +// @JoinTable() +// users: User[]; - @ManyToMany(type => User) - @JoinTable() - users: User[]; + @Column() + owner: string; // fortytwo id + + @Column({ type: "simple-array" }) + users: string[]; // fortytwo id } diff --git a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts index 639c50f8..e5626a04 100644 --- a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts +++ b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts @@ -54,10 +54,10 @@ export class User { @OneToOne(() => UserStats, { cascade: true }) stats: UserStats; - @OneToMany(type => Chatroom, chatroom => chatroom.owner) - ownedRooms: Chatroom[]; - - @ManyToMany(type => Chatroom) - @JoinTable() - userRooms: Chatroom[]; +// @OneToMany(type => Chatroom, chatroom => chatroom.owner) +// ownedRooms: Chatroom[]; +// +// @ManyToMany(type => Chatroom) +// @JoinTable() +// userRooms: Chatroom[]; } diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index fa47c2e4..e69668fe 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -1228,7 +1228,7 @@ var app = (function () { /* node_modules/svelte-spa-router/Router.svelte generated by Svelte v3.53.1 */ - const { Error: Error_1, Object: Object_1, console: console_1$a } = globals; + const { Error: Error_1, Object: Object_1, console: console_1$b } = globals; // (267:0) {:else} function create_else_block$6(ctx) { @@ -2008,7 +2008,7 @@ var app = (function () { const writable_props = ['routes', 'prefix', 'restoreScrollState']; Object_1.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$a.warn(` was created with unknown prop '${key}'`); + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$b.warn(` was created with unknown prop '${key}'`); }); function routeEvent_handler(event) { @@ -2292,7 +2292,7 @@ var app = (function () { /* src/pieces/Header.svelte generated by Svelte v3.53.1 */ - const { console: console_1$9 } = globals; + const { console: console_1$a } = globals; const file$v = "src/pieces/Header.svelte"; // (27:39) @@ -2541,7 +2541,7 @@ var app = (function () { validate_slots('Header', slots, []); let handleClickLogout = async () => { - await fetch(`http://${'localhost'}:${'8080'}/api/v2/auth/logout`, { method: 'POST' }).// .then(resp => resp.json) + await fetch(`http://${'transcendance'}:${'8080'}/api/v2/auth/logout`, { method: 'POST' }).// .then(resp => resp.json) // .then((resp) => console.log(resp)) then(() => push('/')); // i think for TS reasons it has to be a func not direclty push('/') or whatever @@ -2551,7 +2551,7 @@ var app = (function () { const writable_props = []; Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$9.warn(`
    was created with unknown prop '${key}'`); + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$a.warn(`
    was created with unknown prop '${key}'`); }); const click_handler = () => push('/'); @@ -2892,7 +2892,7 @@ var app = (function () { onMount(async () => { // using this for now cuz for some reason there is yet to be a way to fet another person's avatar if (primary) { - await fetch(`http://${'localhost'}:${'8080'}/api/v2/user/avatar`, { method: "GET" }).then(response => { + await fetch(`http://${'transcendance'}:${'8080'}/api/v2/user/avatar`, { method: "GET" }).then(response => { return response.blob(); }).then(data => { const url = URL.createObjectURL(data); @@ -3891,10 +3891,18 @@ var app = (function () { } /* src/pieces/chat/Layout_home.svelte generated by Svelte v3.53.1 */ + + const { console: console_1$9 } = globals; const file$p = "src/pieces/chat/Layout_home.svelte"; - // (12:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status !== 200}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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A,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;O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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Chat_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#each rooms as room}\n\t\t\t\t\n\t\t\t{/each}\n\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6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A,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte index 2c3bccc8..178178c6 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte @@ -14,6 +14,7 @@ // { // // await init_socket(); +// init_socket(); // pbm: sometimes socket is still undefined here socket.on('connect', function(){ diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte index ec2a8b92..883d424c 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte @@ -9,7 +9,7 @@ let room_type: string; let room_password: string; let response_data: string; - let response_status: number = 200; + let response_status: number = 0; let response_message: string; async function handleSubmit(evt) @@ -26,20 +26,23 @@ }; console.log("formData:", formData); - //const response = await fetch(`http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}/api/v2/chat/join`, { + // send the new room const response = await fetch('/api/v2/chat/join', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData), }); + + // get response status and message + response_status = response.status; response_data = await response.json(); - console.log(response_data); - if (response_data.statusCode) - response_status = response_data.statusCode; - else - response_status = 200; if (response_data.message) response_message = response_data.message; + console.log("response:", response_data, "status:", response_status, "message:", response_message); + + // go to room + if (response_status === 200 && response_message === "successfull room creation") + layout = "room"; } @@ -64,7 +67,7 @@
    - {#if response_status !== 200} + {#if response_status >= 300} {/if} diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte index 27496773..2ad1bd64 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte @@ -1,9 +1,29 @@
    @@ -30,10 +50,13 @@

    / you have no chat room yet /

    + {#each rooms as room} + + {/each} +

    rooms are loaded...

    {:then} + function create_pending_block$1(ctx) { + let p; + + const block = { + c: function create() { + p = element("p"); + p.textContent = "rooms are loaded..."; + add_location(p, file$p, 53, 4, 1121); + }, + m: function mount(target, anchor) { + insert_dev(target, p, anchor); + }, + p: noop, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(p); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_pending_block$1.name, + type: "pending", + source: "(52:21)

    rooms are loaded...

    {:then}", ctx }); @@ -4108,7 +4260,7 @@ var app = (function () { let current; function button0_layout_binding(value) { - /*button0_layout_binding*/ ctx[2](value); + /*button0_layout_binding*/ ctx[3](value); } let button0_props = { @@ -4126,7 +4278,7 @@ var app = (function () { binding_callbacks.push(() => bind(button0, 'layout', button0_layout_binding)); function button1_layout_binding(value) { - /*button1_layout_binding*/ ctx[3](value); + /*button1_layout_binding*/ ctx[4](value); } let button1_props = { @@ -4144,7 +4296,7 @@ var app = (function () { binding_callbacks.push(() => bind(button1, 'layout', button1_layout_binding)); function button2_layout_binding(value) { - /*button2_layout_binding*/ ctx[4](value); + /*button2_layout_binding*/ ctx[5](value); } let button2_props = { @@ -4160,17 +4312,19 @@ var app = (function () { button2 = new Chat_button({ props: button2_props, $$inline: true }); binding_callbacks.push(() => bind(button2, 'layout', button2_layout_binding)); - let each_value = /*rooms*/ ctx[1]; - validate_each_argument(each_value); - let each_blocks = []; - for (let i = 0; i < each_value.length; i += 1) { - each_blocks[i] = create_each_block$5(get_each_context$5(ctx, each_value, i)); - } + let info = { + ctx, + current: null, + token: null, + hasCatch: false, + pending: create_pending_block$1, + then: create_then_block$1, + catch: create_catch_block$1, + blocks: [,,,] + }; - const out = i => transition_out(each_blocks[i], 1, 1, () => { - each_blocks[i] = null; - }); + handle_promise(/*get_rooms*/ ctx[2], info); const block = { c: function create() { @@ -4190,23 +4344,19 @@ var app = (function () { p1 = element("p"); p1.textContent = "/ you have no chat room yet /"; t6 = space(); - - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - + info.block.c(); attr_dev(p0, "class", "title svelte-1jygwt2"); - add_location(p0, file$p, 47, 2, 872); + add_location(p0, file$p, 46, 2, 889); attr_dev(p1, "class", "__center"); - add_location(p1, file$p, 50, 4, 982); + add_location(p1, file$p, 49, 4, 999); attr_dev(div0, "class", "__show_if_only_child"); - add_location(div0, file$p, 49, 3, 943); + add_location(div0, file$p, 48, 3, 960); attr_dev(div1, "class", "room_list"); - add_location(div1, file$p, 48, 2, 916); + add_location(div1, file$p, 47, 2, 933); attr_dev(div2, "class", "panel panel_home __border_top svelte-1jygwt2"); - add_location(div2, file$p, 46, 1, 826); + add_location(div2, file$p, 45, 1, 843); attr_dev(div3, "class", "grid_box svelte-1jygwt2"); - add_location(div3, file$p, 28, 0, 467); + add_location(div3, file$p, 27, 0, 484); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -4226,17 +4376,16 @@ var app = (function () { append_dev(div1, div0); append_dev(div0, p1); append_dev(div1, t6); - - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(div1, null); - } - + info.block.m(div1, info.anchor = null); + info.mount = () => div1; + info.anchor = null; current = true; }, - p: function update(ctx, [dirty]) { + p: function update(new_ctx, [dirty]) { + ctx = new_ctx; const button0_changes = {}; - if (dirty & /*$$scope*/ 512) { + if (dirty & /*$$scope*/ 1024) { button0_changes.$$scope = { dirty, ctx }; } @@ -4249,7 +4398,7 @@ var app = (function () { button0.$set(button0_changes); const button1_changes = {}; - if (dirty & /*$$scope*/ 512) { + if (dirty & /*$$scope*/ 1024) { button1_changes.$$scope = { dirty, ctx }; } @@ -4262,7 +4411,7 @@ var app = (function () { button1.$set(button1_changes); const button2_changes = {}; - if (dirty & /*$$scope*/ 512) { + if (dirty & /*$$scope*/ 1024) { button2_changes.$$scope = { dirty, ctx }; } @@ -4273,55 +4422,24 @@ var app = (function () { } button2.$set(button2_changes); - - if (dirty & /*layout, rooms*/ 3) { - each_value = /*rooms*/ ctx[1]; - validate_each_argument(each_value); - let i; - - for (i = 0; i < each_value.length; i += 1) { - const child_ctx = get_each_context$5(ctx, each_value, i); - - if (each_blocks[i]) { - each_blocks[i].p(child_ctx, dirty); - transition_in(each_blocks[i], 1); - } else { - each_blocks[i] = create_each_block$5(child_ctx); - each_blocks[i].c(); - transition_in(each_blocks[i], 1); - each_blocks[i].m(div1, null); - } - } - - group_outros(); - - for (i = each_value.length; i < each_blocks.length; i += 1) { - out(i); - } - - check_outros(); - } + update_await_block_branch(info, ctx, dirty); }, i: function intro(local) { if (current) return; transition_in(button0.$$.fragment, local); transition_in(button1.$$.fragment, local); transition_in(button2.$$.fragment, local); - - for (let i = 0; i < each_value.length; i += 1) { - transition_in(each_blocks[i]); - } - + transition_in(info.block); current = true; }, o: function outro(local) { transition_out(button0.$$.fragment, local); transition_out(button1.$$.fragment, local); transition_out(button2.$$.fragment, local); - each_blocks = each_blocks.filter(Boolean); - for (let i = 0; i < each_blocks.length; i += 1) { - transition_out(each_blocks[i]); + for (let i = 0; i < 3; i += 1) { + const block = info.blocks[i]; + transition_out(block); } current = false; @@ -4331,7 +4449,9 @@ var app = (function () { destroy_component(button0); destroy_component(button1); destroy_component(button2); - destroy_each(each_blocks, detaching); + info.block.d(); + info.token = null; + info = null; } }; @@ -4358,13 +4478,11 @@ var app = (function () { { room_name: 'ho room' } ]; - // ask for the rooms - onMount(() => { - console.log("onmount"); - - fetch('/api/v2/chat/rooms').then(resp => resp.json()).then(data => { - console.log(data); - }); //rooms = data; + // ask api for the rooms + const get_rooms = fetch('/api/v2/chat/rooms').then(resp => resp.json()).then(data => { + console.log(data.rooms); + for (let room of data.rooms) console.log(room.name); + $$invalidate(1, rooms = data.rooms); }); $$self.$$.on_mount.push(function () { @@ -4403,7 +4521,13 @@ var app = (function () { if ('layout' in $$props) $$invalidate(0, layout = $$props.layout); }; - $$self.$capture_state = () => ({ onMount, Button: Chat_button, layout, rooms }); + $$self.$capture_state = () => ({ + onMount, + Button: Chat_button, + layout, + rooms, + get_rooms + }); $$self.$inject_state = $$props => { if ('layout' in $$props) $$invalidate(0, layout = $$props.layout); @@ -4417,6 +4541,7 @@ var app = (function () { return [ layout, rooms, + get_rooms, button0_layout_binding, button1_layout_binding, button2_layout_binding, diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js.map b/srcs/requirements/svelte/api_front/public/build/bundle.js.map index 9c71b57a..c467fd3e 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js.map +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Chat_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#each rooms as room}\n\t\t\t\t\n\t\t\t{/each}\n\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6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A,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Chat_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte index 2ad1bd64..a4383dce 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte @@ -12,16 +12,15 @@ {room_name: 'ho room'}, ]; - // ask for the rooms - onMount(() => { - console.log("onmount"); - const get_rooms = fetch('/api/v2/chat/rooms') - .then(resp => resp.json()) - .then(data => - { - console.log(data); - //rooms = data; - }); + // ask api for the rooms + const get_rooms = fetch('/api/v2/chat/rooms') + .then(resp => resp.json()) + .then(data => + { + console.log(data.rooms); + for (let room of data.rooms) + console.log(room.name); + rooms = data.rooms; }); @@ -50,11 +49,16 @@

    / you have no chat room yet /

    - {#each rooms as room} - - {/each} + {#await get_rooms} + +

    rooms are loaded...

    + {:then} + {#each rooms as room} + + {/each} + {/await}

    rooms are loaded...

    {:then} + // (66:21)

    rooms are loaded...

    {:then} function create_pending_block$1(ctx) { let p; @@ -4215,7 +4217,7 @@ var app = (function () { c: function create() { p = element("p"); p.textContent = "rooms are loaded..."; - add_location(p, file$p, 53, 4, 1121); + add_location(p, file$p, 67, 4, 1409); }, m: function mount(target, anchor) { insert_dev(target, p, anchor); @@ -4232,7 +4234,7 @@ var app = (function () { block, id: create_pending_block$1.name, type: "pending", - source: "(52:21)

    rooms are loaded...

    {:then}", + source: "(66:21)

    rooms are loaded...

    {:then}", ctx }); @@ -4346,17 +4348,17 @@ var app = (function () { t6 = space(); info.block.c(); attr_dev(p0, "class", "title svelte-1jygwt2"); - add_location(p0, file$p, 46, 2, 889); + add_location(p0, file$p, 60, 2, 1177); attr_dev(p1, "class", "__center"); - add_location(p1, file$p, 49, 4, 999); + add_location(p1, file$p, 63, 4, 1287); attr_dev(div0, "class", "__show_if_only_child"); - add_location(div0, file$p, 48, 3, 960); + add_location(div0, file$p, 62, 3, 1248); attr_dev(div1, "class", "room_list"); - add_location(div1, file$p, 47, 2, 933); + add_location(div1, file$p, 61, 2, 1221); attr_dev(div2, "class", "panel panel_home __border_top svelte-1jygwt2"); - add_location(div2, file$p, 45, 1, 843); + add_location(div2, file$p, 59, 1, 1131); attr_dev(div3, "class", "grid_box svelte-1jygwt2"); - add_location(div3, file$p, 27, 0, 484); + add_location(div3, file$p, 41, 0, 772); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -4524,6 +4526,7 @@ var app = (function () { $$self.$capture_state = () => ({ onMount, Button: Chat_button, + msgs, layout, rooms, get_rooms @@ -8192,6 +8195,7 @@ var app = (function () { fetch(`${address}/api/v2/user`).then(resp => resp.json()).then(data => { user = data; + console.log("user:", user); socket$1 = lookup(address, { path: '/chat', @@ -8199,8 +8203,6 @@ var app = (function () { }); }); - let msgs = writable([]); - /* src/pieces/chat/Layout_room.svelte generated by Svelte v3.53.1 */ const file$n = "src/pieces/chat/Layout_room.svelte"; @@ -8294,7 +8296,7 @@ var app = (function () { // (64:4) function create_default_slot_1$8(ctx) { let html_tag; - let raw_value = /*msg*/ ctx[4].content + ""; + let raw_value = /*msg*/ ctx[4].message + ""; let html_anchor; const block = { @@ -8308,7 +8310,7 @@ var app = (function () { insert_dev(target, html_anchor, anchor); }, p: function update(ctx, dirty) { - if (dirty & /*$msgs*/ 8 && raw_value !== (raw_value = /*msg*/ ctx[4].content + "")) html_tag.p(raw_value); + if (dirty & /*$msgs*/ 8 && raw_value !== (raw_value = /*msg*/ ctx[4].message + "")) html_tag.p(raw_value); }, d: function destroy(detaching) { if (detaching) detach_dev(html_anchor); @@ -8727,8 +8729,8 @@ var app = (function () { let msg = ""; let text_area; - function add_local_msg(from, message) { - msgs.update(msgs => [...msgs, { content: message, name: from }]); + function add_local_msg(name, message) { + msgs.update(msgs => [...msgs, { name, message }]); } function send_msg() { diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js.map b/srcs/requirements/svelte/api_front/public/build/bundle.js.map index c467fd3e..796af0c7 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js.map +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Chat_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.content}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Chat_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte index bdecf72f..fde68873 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte @@ -11,6 +11,7 @@ .then((data) => { user = data; + console.log("user:", user); socket = io(address, { path: '/chat', diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte index a4383dce..a747e9e4 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte @@ -3,6 +3,7 @@ import { onMount } from 'svelte'; import Button from './Chat_button.svelte'; + import { msgs } from './Store_msg.js'; export let layout; let rooms = [ @@ -23,6 +24,19 @@ rooms = data.rooms; }); +/* + function get_room_messages() + { + const messages = fetch('/api/v2/chat/messages') + .then(resp => resp.json()) + .then(data => + { + console.log(data.messages); + msgs.update(msgs => [...msgs, { name: name, message: message }]); + }); + } +*/ +
    @@ -59,16 +73,6 @@ {/each} {/await} - - -
    diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte index d29dd82f..2c6a5744 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte @@ -12,9 +12,9 @@ let msg = ""; let text_area; - function add_local_msg(from, message) + function add_local_msg(name, message) { - msgs.update(msgs => [...msgs, { content: message, name: from }]); + msgs.update(msgs => [...msgs, { name: name, message: message }]); } function send_msg() @@ -61,7 +61,7 @@
    {#each $msgs as msg} - {@html msg.content} + {@html msg.message} {/each}
    From c5ed704a62c67835360bfe73197912cf752f18c2 Mon Sep 17 00:00:00 2001 From: simplonco Date: Sun, 8 Jan 2023 14:18:57 +0100 Subject: [PATCH 20/35] room load old message but pbm to read them --- .../api_back/src/chat/chat.controller.ts | 38 +++-- .../nestjs/api_back/src/chat/chat.service.ts | 47 ++++-- .../{joinRoom.dto.ts => createRoom.dto.ts} | 2 +- .../svelte/api_front/public/build/bundle.js | 155 +++++++++--------- .../api_front/public/build/bundle.js.map | 2 +- .../src/pieces/chat/Layout_create.svelte | 2 +- .../src/pieces/chat/Layout_home.svelte | 13 +- 7 files changed, 143 insertions(+), 116 deletions(-) rename srcs/requirements/nestjs/api_back/src/chat/dto/{joinRoom.dto.ts => createRoom.dto.ts} (92%) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts index 8315329e..28f008d5 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts @@ -2,7 +2,7 @@ import { Controller, UseGuards, HttpException, HttpStatus, Get, Post, Body, Req, import { AuthenticateGuard, TwoFactorGuard } from 'src/auth/42/guards/42guards'; import { ChatService } from './chat.service'; import { User } from 'src/users/entities/user.entity'; -import { joinRoomDto } from './dto/joinRoom.dto'; +import { createRoomDto } from './dto/createRoom.dto'; import { setCurrentRoomDto } from './dto/setCurrentRoom.dto'; @Controller('chat') @@ -15,28 +15,39 @@ export class ChatController { @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Get('rooms') - async getRooms(@Req() req, @Res() res) + async getRooms(@Req() req, @Res() res): Promise { - //console.log("in getRooms"); - return await this.chatService.getRooms(req.user, res); + console.log("- in getRooms controller"); + const rooms = await this.chatService.getRooms(req.user); + return res.status(HttpStatus.OK).json({ rooms: rooms }); } @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Get('current') - async setCurrentRoom(@Body() setCurrentRoomDto: setCurrentRoomDto, @Req() req, @Res() res) + async setCurrentRoom(@Body() setCurrentRoomDto: setCurrentRoomDto, @Req() req, @Res() res): Promise { - //console.log("in setCurrentRoom"); - return await this.chatService.setCurrentRoom(req.user, setCurrentRoomDto.name, res); + console.log("- in setCurrentRoom controller"); + const response = await this.chatService.setCurrentRoom(req.user, setCurrentRoomDto.name); + return res.status(HttpStatus.OK).json({ message: response }); + } + + @UseGuards(AuthenticateGuard) + @UseGuards(TwoFactorGuard) + @Post('create') + async createRoom(@Body() createRoomDto: createRoomDto, @Req() req, @Res() res): Promise + { + console.log("- in createRoom controller"); + const response = await this.chatService.addUserToRoom(req.user, createRoomDto); + return res.status(HttpStatus.OK).json({ room_name: createRoomDto.room_name, message: response }); } @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Post('join') - async joinRoom(@Body() joinRoomDto: joinRoomDto, @Req() req, @Res() res) + async joinRoom(@Body() body) { - //console.log("in joinRoom"); - return await this.chatService.addUserToRoom(req.user, joinRoomDto, res); + console.log("- in joinRoom controller"); } @UseGuards(AuthenticateGuard) @@ -44,14 +55,17 @@ export class ChatController { @Post('leave') async leaveRoom(@Body() body) { + console.log("- in leaveRoom controller"); } @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Get('messages') - async getMessages(@Req() req, @Res() res) + async getMessages(@Req() req, @Res() res): Promise { - return this.chatService.getMessagesFromCurrentRoom(req.user, res); + console.log("- in getMessages controller"); + const messages = await this.chatService.getMessagesFromCurrentRoom(req.user); + return res.status(HttpStatus.OK).json({ messages: messages }); } } diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index 20ccbd3a..77980f74 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -4,7 +4,7 @@ import { UsersService } from 'src/users/users.service'; import { Chatroom } from './entities/chatroom.entity'; import { Repository } from 'typeorm'; import { InjectRepository } from '@nestjs/typeorm'; -import { joinRoomDto } from './dto/joinRoom.dto'; +import { createRoomDto } from './dto/createRoom.dto'; import { messagesDto } from './dto/messages.dto'; @Injectable() @@ -24,38 +24,43 @@ export class ChatService { return new Promise(resolve => setTimeout(resolve, ms)); } - async getRooms(user: User, @Res() res) + async getRooms(user: User): Promise { + console.log("-- in getRooms service"); const rooms = await this.chatroomRepository .createQueryBuilder('chatroom') .where(':user_id IN (chatroom.users)', { user_id: user.fortyTwoId }) .getMany(); - - return res.status(HttpStatus.OK).json({ rooms: rooms }); + return rooms; } async findRoomByName(name: string) { + console.log("-- in findUserByName service"); const room = await this.chatroomRepository .createQueryBuilder('chatroom') .where('chatroom.name = :name', { name: name }) .getOne(); + console.log("room:", room, ", typeof room:", typeof room); return room; } - async findRoomById(id: number, @Res() res) + async findRoomById(id: number) { + console.log("-- in findRoomById service"); const room = await this.chatroomRepository .createQueryBuilder('chatroom') .where('chatroom.id = :id', { id: id }) .getOne(); - return res.status(HttpStatus.OK).json({ room: room }); + console.log("room:", room, ", typeof room:", typeof room); + return room; } - async findUserByName(name: string) + async findUserByName(name: string): Promise { + console.log("-- in findUserByName service"); const user = await this.userRepository .createQueryBuilder('user') .where('user.username = :name', { name: name }) @@ -64,46 +69,50 @@ export class ChatService { return user; } - async setCurrentRoom(user: User, name: string, @Res() res) + async setCurrentRoom(user: User, name: string): Promise { + console.log("-- in setCurrentRoom service"); const user_db = await this.usersService.findOneByFourtyTwoId(user.fortyTwoId); user_db.currentRoom = name; this.userRepository.save(user_db); - return res.status(HttpStatus.OK).json({ message: `room "${name}" is now current room` }); + return `room "${name}" is now current room`; } - async addUserToRoom(user: User, joinRoomDto: joinRoomDto, @Res() res) + async addUserToRoom(user: User, createRoomDto: createRoomDto): Promise { + console.log("-- in addUserToRoom service"); const room = await this.chatroomRepository .createQueryBuilder('chatroom') - .where('chatroom.name = :name', { name: joinRoomDto.room_name }) + .where('chatroom.name = :name', { name: createRoomDto.room_name }) .getOne(); if (room) throw new HttpException(`This room already exist`, HttpStatus.CONFLICT); // create chatroom const newChatroom = new Chatroom(); - newChatroom.name = joinRoomDto.room_name; - newChatroom.type = joinRoomDto.room_type; + newChatroom.name = createRoomDto.room_name; + newChatroom.type = createRoomDto.room_type; newChatroom.owner = user.fortyTwoId; newChatroom.users = [user.fortyTwoId]; - newChatroom.messages = [{ name: "SERVER", message: `creation of room ${joinRoomDto.room_name}` }]; + newChatroom.messages = [{ name: "SERVER", message: `creation of room ${createRoomDto.room_name}` }]; this.chatroomRepository.save(newChatroom); - this.setCurrentRoom(user, joinRoomDto.room_name, res) + this.setCurrentRoom(user, createRoomDto.room_name) - return res.status(HttpStatus.OK).json({ room_name: joinRoomDto.room_name, message: "successfull room creation" }); + return "successfull room creation"; } async removeUserFromRoom(user: User, room_name: string) { + console.log("-- in removeUserFromRoom service"); // get room // remove user } async addMessageToCurrentRoom(name: string, message: string) { + console.log("-- in addMessageToCurrentRoom service"); const user_db = await this.findUserByName(name); const currentRoom = await this.findRoomByName(user_db.currentRoom); let chat_message = { @@ -115,11 +124,13 @@ export class ChatService { this.chatroomRepository.save(currentRoom); } - async getMessagesFromCurrentRoom(user: User, @Res() res) + async getMessagesFromCurrentRoom(user: User): Promise { + console.log("-- in getMessagesFromCurrentRoom service"); const user_db = await this.usersService.findOneByFourtyTwoId(user.fortyTwoId); const currentRoom = await this.findRoomByName(user_db.currentRoom); - return res.status(HttpStatus.OK).json({ messages: currentRoom.messages }); + + return currentRoom.messages; } } diff --git a/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts b/srcs/requirements/nestjs/api_back/src/chat/dto/createRoom.dto.ts similarity index 92% rename from srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts rename to srcs/requirements/nestjs/api_back/src/chat/dto/createRoom.dto.ts index 050eec92..69b5543e 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/dto/joinRoom.dto.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/dto/createRoom.dto.ts @@ -1,7 +1,7 @@ import { IsBoolean, IsEmpty, IsInt, IsNotEmpty, IsNumber, IsString, IsOptional } from "class-validator"; import { IsNull } from "typeorm"; -export class joinRoomDto +export class createRoomDto { @IsString() @IsNotEmpty() diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 7f16d4e7..07da085b 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -3903,7 +3903,7 @@ var app = (function () { return child_ctx; } - // (45:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n\n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Store_msg.js","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Chat_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte index 883d424c..61715841 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte @@ -27,7 +27,7 @@ console.log("formData:", formData); // send the new room - const response = await fetch('/api/v2/chat/join', { + const response = await fetch('/api/v2/chat/create', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData), diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte index a747e9e4..33460134 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte @@ -18,23 +18,28 @@ .then(resp => resp.json()) .then(data => { - console.log(data.rooms); + console.log("data.rooms:", data.rooms); for (let room of data.rooms) console.log(room.name); rooms = data.rooms; }); -/* function get_room_messages() { + console.log("in get_room_messages"); const messages = fetch('/api/v2/chat/messages') .then(resp => resp.json()) .then(data => { console.log(data.messages); - msgs.update(msgs => [...msgs, { name: name, message: message }]); + msgs.update(msgs => msgs.concat(data.messages)); }); + layout = "room"; } + function test() { + console.log("test"); + } +/* */ @@ -68,7 +73,7 @@

    rooms are loaded...

    {:then} {#each rooms as room} - {/each} From 4c0256e7b3088bdc80615373f1d38b8a1fcbfaf2 Mon Sep 17 00:00:00 2001 From: simplonco Date: Sun, 8 Jan 2023 14:53:09 +0100 Subject: [PATCH 21/35] pbm socket connection resolved --- .../nestjs/api_back/src/chat/chat.service.ts | 10 +- .../svelte/api_front/public/build/bundle.js | 1847 +++++++++-------- .../api_front/public/build/bundle.js.map | 2 +- .../api_front/src/pieces/chat/Chat.svelte | 19 +- .../src/pieces/chat/Layout_home.svelte | 11 +- .../src/pieces/chat/Layout_room.svelte | 6 +- .../api_front/src/pieces/chat/Socket.ts | 59 +- 7 files changed, 993 insertions(+), 961 deletions(-) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index 77980f74..621e591c 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -24,7 +24,7 @@ export class ChatService { return new Promise(resolve => setTimeout(resolve, ms)); } - async getRooms(user: User): Promise + async getRooms(user: User) { console.log("-- in getRooms service"); const rooms = await this.chatroomRepository @@ -58,7 +58,7 @@ export class ChatService { return room; } - async findUserByName(name: string): Promise + async findUserByName(name: string) { console.log("-- in findUserByName service"); const user = await this.userRepository @@ -69,7 +69,7 @@ export class ChatService { return user; } - async setCurrentRoom(user: User, name: string): Promise + async setCurrentRoom(user: User, name: string) { console.log("-- in setCurrentRoom service"); const user_db = await this.usersService.findOneByFourtyTwoId(user.fortyTwoId); @@ -79,7 +79,7 @@ export class ChatService { return `room "${name}" is now current room`; } - async addUserToRoom(user: User, createRoomDto: createRoomDto): Promise + async addUserToRoom(user: User, createRoomDto: createRoomDto) { console.log("-- in addUserToRoom service"); const room = await this.chatroomRepository @@ -124,7 +124,7 @@ export class ChatService { this.chatroomRepository.save(currentRoom); } - async getMessagesFromCurrentRoom(user: User): Promise + async getMessagesFromCurrentRoom(user: User) { console.log("-- in getMessagesFromCurrentRoom service"); const user_db = await this.usersService.findOneByFourtyTwoId(user.fortyTwoId); diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 07da085b..1e0c6422 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -1228,7 +1228,7 @@ var app = (function () { /* node_modules/svelte-spa-router/Router.svelte generated by Svelte v3.53.1 */ - const { Error: Error_1, Object: Object_1, console: console_1$b } = globals; + const { Error: Error_1, Object: Object_1, console: console_1$a } = globals; // (267:0) {:else} function create_else_block$6(ctx) { @@ -2008,7 +2008,7 @@ var app = (function () { const writable_props = ['routes', 'prefix', 'restoreScrollState']; Object_1.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$b.warn(` was created with unknown prop '${key}'`); + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$a.warn(` was created with unknown prop '${key}'`); }); function routeEvent_handler(event) { @@ -2292,7 +2292,7 @@ var app = (function () { /* src/pieces/Header.svelte generated by Svelte v3.53.1 */ - const { console: console_1$a } = globals; + const { console: console_1$9 } = globals; const file$v = "src/pieces/Header.svelte"; // (27:39) @@ -2551,7 +2551,7 @@ var app = (function () { const writable_props = []; Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$a.warn(`
    was created with unknown prop '${key}'`); + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$9.warn(`
    was created with unknown prop '${key}'`); }); const click_handler = () => push('/'); @@ -3890,837 +3890,7 @@ var app = (function () { } } - let msgs = writable([]); - - /* src/pieces/chat/Layout_home.svelte generated by Svelte v3.53.1 */ - - const { console: console_1$9 } = globals; - const file$p = "src/pieces/chat/Layout_home.svelte"; - - function get_each_context$5(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[7] = list[i]; - return child_ctx; - } - - // (50:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","socket","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Chat_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Store_msg.js","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Chat_socket.svelte","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Chat_msg.svelte","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Chat_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../src/pieces/chat/Socket.ts","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\nimport io from 'socket.io-client';\nexport let user;\nexport let socket;\n\nconst address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;\n\nexport async function init_socket()\n{\n\tconsole.log(\"inside init_socket\");\n\tconst response = await fetch(`${address}/api/v2/user`);\n\tconst response_data = await response.json();\n\n\tuser = response_data;\n\tconsole.log(\"user:\", user);\n\n\tsocket = await io(address,\n\t{\n\t\tpath: '/chat',\n\t\tquery:\n\t\t{\n\t\t\tusername: user.username,\n\t\t},\n\t})\n\tconsole.log(\"socket:\", socket);\n\n\tsocket.on('connect', function(){\n\t\tconsole.log(\"socket.io connected\");\n\t});\n\tsocket.on('disconnect', function(){\n\t\tconsole.log(\"socket.io disconnected\");\n\t});\n\tsocket.on('connect_error', function(){\n\t\tconsole.log(\"socket.io connect_error\");\n\t});\n\tsocket.on('connect_timeout', function(){\n\t\tconsole.log(\"socket.io connect_timeout\");\n\t});\n\tsocket.on('error', function(){\n\t\tconsole.log(\"socket.io error\");\n\t});\n\tsocket.on('reconnect', function(){\n\t\tconsole.log(\"socket.io reconnect\");\n\t});\n\tsocket.on('reconnect_attempt', function(){\n\t\tconsole.log(\"socket.io reconnect_attempt\");\n\t});\n\tsocket.on('reconnecting', function(){\n\t\tconsole.log(\"socket.io reconnecting\");\n\t});\n\tsocket.on('reconnect_error', function(){\n\t\tconsole.log(\"socket.io reconnect_error\");\n\t});\n\tsocket.on('reconnect_failed', function(){\n\t\tconsole.log(\"socket.io reconnect_failed\");\n\t});\n\tsocket.on('ping', function(){\n\t\tconsole.log(\"socket.io ping\");\n\t});\n\tsocket.on('pong', function(){\n\t\tconsole.log(\"socket.io pong\");\n\t});\n\n\tsocket.on('message', function(from, message)\n\t{\n\t\tconsole.log(\"received msg:\", message, from);\n\t\tif (from === user.username)\n\t\t\tfrom = \"me\";\n\t\tmsgs.update(msgs => [...msgs, { content: message, name: from }]);\n\t});\n}\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","msgs","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","user","socket","address","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte index 178178c6..b5638322 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte @@ -6,15 +6,15 @@ /* web sockets with socket.io */ - import { socket, user } from './Chat_socket.svelte'; -// import { init_socket, socket, user } from './Socket'; + //import { socket, user } from './Chat_socket.svelte'; + import { init_socket, socket, user } from './Socket'; import { msgs } from './Store_msg.js'; -// async function socket_actions() -// { -// -// await init_socket(); -// init_socket(); + init_socket(); +/* + async function socket_actions() + { + await init_socket(); // pbm: sometimes socket is still undefined here socket.on('connect', function(){ @@ -61,9 +61,10 @@ from = "me"; msgs.update(msgs => [...msgs, { content: message, name: from }]); }); -// }; + }; -// socket_actions(); + socket_actions(); +*/ diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte index 33460134..53115cc6 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_home.svelte @@ -4,6 +4,7 @@ import { onMount } from 'svelte'; import Button from './Chat_button.svelte'; import { msgs } from './Store_msg.js'; + import { user } from './Chat_socket.svelte'; export let layout; let rooms = [ @@ -32,15 +33,15 @@ .then(data => { console.log(data.messages); + data.messages.forEach(function(item) { + if (item.name === user.username) { + item.name = "me"; + } + }); msgs.update(msgs => msgs.concat(data.messages)); }); layout = "room"; } - function test() { - console.log("test"); - } -/* -*/ diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte index 2c6a5744..d2a5e83b 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_room.svelte @@ -12,9 +12,9 @@ let msg = ""; let text_area; - function add_local_msg(name, message) + function add_local_msg(message) { - msgs.update(msgs => [...msgs, { name: name, message: message }]); + msgs.update(msgs => [...msgs, { name: "me", message: message }]); } function send_msg() @@ -22,7 +22,7 @@ msg = msg.trim(); if (msg.length > 0) { socket.emit('message', msg); - add_local_msg("me", msg); + add_local_msg(msg); } msg = ""; diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Socket.ts b/srcs/requirements/svelte/api_front/src/pieces/chat/Socket.ts index ed7219d9..72b4ba78 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Socket.ts +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Socket.ts @@ -3,26 +3,55 @@ import io from 'socket.io-client'; export let user; export let socket; -export let temp = "foo"; -export function change_temp(){temp = "bar";}; - const address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`; -export function init_socket() +export async function init_socket() { - fetch(`${address}/api/v2/user`) - .then((resp) => resp.json()) - .then((data) => + console.log("inside init_socket"); + const response = await fetch(`${address}/api/v2/user`); + const response_data = await response.json(); + + user = response_data; + console.log("user:", user); + + socket = await io(address, { - user = data; - socket = io(address, + path: '/chat', + query: { - path: '/chat', - query: - { - username: user.username, - }, - }) + username: user.username, + }, + }) + console.log("socket:", socket); + + connection_states(); + socket_events(); +} + +function socket_events() +{ + socket.on('message', function(from, message) + { + console.log("received msg:", message, from); + if (from === user.username) + from = "me"; + msgs.update(msgs => [...msgs, { content: message, name: from }]); }); } +function connection_states() +{ + socket.on('connect', function(){ console.log("socket.io connected"); }); + socket.on('disconnect', function(){ console.log("socket.io disconnected"); }); + socket.on('connect_error', function(){ console.log("socket.io connect_error"); }); + socket.on('connect_timeout', function(){ console.log("socket.io connect_timeout"); }); + socket.on('error', function(){ console.log("socket.io error"); }); + socket.on('reconnect', function(){ console.log("socket.io reconnect"); }); + socket.on('reconnect_attempt', function(){ console.log("socket.io reconnect_attempt"); }); + socket.on('reconnecting', function(){ console.log("socket.io reconnecting"); }); + socket.on('reconnect_error', function(){ console.log("socket.io reconnect_error"); }); + socket.on('reconnect_failed', function(){ console.log("socket.io reconnect_failed"); }); + socket.on('ping', function(){ console.log("socket.io ping"); }); + socket.on('pong', function(){ console.log("socket.io pong"); }); +} + From 272221071d26567f46b0d2e55c54270068e0fabe Mon Sep 17 00:00:00 2001 From: simplonco Date: Sun, 8 Jan 2023 15:35:19 +0100 Subject: [PATCH 22/35] new svelte files organisation for sockets and store --- .../svelte/api_front/public/build/bundle.js | 14730 ++++++++-------- .../api_front/public/build/bundle.js.map | 2 +- .../api_front/src/pieces/chat/Chat.svelte | 63 +- .../src/pieces/chat/Chat_box_css.svelte | 1 - .../src/pieces/chat/Chat_layouts.svelte | 3 +- .../src/pieces/chat/Chat_socket.svelte | 26 - ...at_button.svelte => Element_button.svelte} | 1 - .../{Chat_msg.svelte => Element_msg.svelte} | 0 ..._warning.svelte => Element_warning.svelte} | 0 .../src/pieces/chat/Layout_close.svelte | 3 +- .../src/pieces/chat/Layout_create.svelte | 4 +- .../src/pieces/chat/Layout_home.svelte | 6 +- .../src/pieces/chat/Layout_mute.svelte | 3 +- .../src/pieces/chat/Layout_new.svelte | 3 +- .../src/pieces/chat/Layout_protected.svelte | 3 +- .../src/pieces/chat/Layout_room.svelte | 8 +- .../src/pieces/chat/Layout_room_set.svelte | 3 +- .../src/pieces/chat/Layout_settings.svelte | 3 +- .../src/pieces/chat/Layout_user.svelte | 3 +- .../src/pieces/chat/Socket_events.ts | 10 + .../api_front/src/pieces/chat/Socket_init.ts | 28 + .../src/pieces/chat/Socket_states.js | 1 - .../chat/{Socket.ts => Socket_states.ts} | 43 +- .../api_front/src/pieces/chat/Store_chat.ts | 10 + .../api_front/src/pieces/chat/Store_msg.js | 7 - 25 files changed, 7422 insertions(+), 7542 deletions(-) delete mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/Chat_socket.svelte rename srcs/requirements/svelte/api_front/src/pieces/chat/{Chat_button.svelte => Element_button.svelte} (99%) rename srcs/requirements/svelte/api_front/src/pieces/chat/{Chat_msg.svelte => Element_msg.svelte} (100%) rename srcs/requirements/svelte/api_front/src/pieces/chat/{Chat_warning.svelte => Element_warning.svelte} (100%) create mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/Socket_events.ts create mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/Socket_init.ts delete mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/Socket_states.js rename srcs/requirements/svelte/api_front/src/pieces/chat/{Socket.ts => Socket_states.ts} (55%) create mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/Store_chat.ts delete mode 100644 srcs/requirements/svelte/api_front/src/pieces/chat/Store_msg.js diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 1e0c6422..38c1ffbd 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -3351,7 +3351,7 @@ var app = (function () { if (default_slot) default_slot.c(); attr_dev(div, "class", div_class_value = "" + (/*layout*/ ctx[1] + " chat_box" + " svelte-6ej1tr")); set_style(div, "background-color", /*color*/ ctx[0]); - add_location(div, file$s, 5, 0, 67); + add_location(div, file$s, 4, 0, 66); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -3487,9 +3487,9 @@ var app = (function () { } } - /* src/pieces/chat/Chat_button.svelte generated by Svelte v3.53.1 */ + /* src/pieces/chat/Element_button.svelte generated by Svelte v3.53.1 */ - const file$r = "src/pieces/chat/Chat_button.svelte"; + const file$r = "src/pieces/chat/Element_button.svelte"; function create_fragment$u(ctx) { let button; @@ -3507,10 +3507,10 @@ var app = (function () { p = element("p"); if (default_slot) default_slot.c(); attr_dev(p, "class", "svelte-1qngx3f"); - add_location(p, file$r, 24, 1, 416); + add_location(p, file$r, 23, 1, 415); attr_dev(button, "title", /*my_title*/ ctx[1]); attr_dev(button, "class", button_class_value = "" + (null_to_empty(/*my_class*/ ctx[0]) + " svelte-1qngx3f")); - add_location(button, file$r, 23, 0, 327); + add_location(button, file$r, 22, 0, 326); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -3599,7 +3599,7 @@ var app = (function () { function instance$u($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; - validate_slots('Chat_button', slots, ['default']); + validate_slots('Element_button', slots, ['default']); let { my_class = "" } = $$props; let { my_title = "" } = $$props; let { layout = "" } = $$props; @@ -3613,7 +3613,7 @@ var app = (function () { const writable_props = ['my_class', 'my_title', 'layout', 'new_layout', 'on_click']; Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); }); $$self.$$set = $$props => { @@ -3658,7 +3658,7 @@ var app = (function () { ]; } - class Chat_button extends SvelteComponentDev { + class Element_button extends SvelteComponentDev { constructor(options) { super(options); @@ -3672,57 +3672,57 @@ var app = (function () { dispatch_dev("SvelteRegisterComponent", { component: this, - tagName: "Chat_button", + tagName: "Element_button", options, id: create_fragment$u.name }); } get my_class() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set my_class(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get my_title() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set my_title(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get layout() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set layout(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get new_layout() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set new_layout(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get on_click() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set on_click(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } } /* src/pieces/chat/Layout_close.svelte generated by Svelte v3.53.1 */ const file$q = "src/pieces/chat/Layout_close.svelte"; - // (10:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n\n \n \n\n \n \n \n \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n\t\n
    \n\n\n\n\n","\nimport { writable } from 'svelte/store';\n\nexport let user = writable({});\nexport let socket = writable({});\nexport let msgs = writable([]);\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","\nimport io from 'socket.io-client';\nexport let user;\nexport let socket;\n\nconst address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;\n\nexport async function init_socket()\n{\n\tconsole.log(\"inside init_socket\");\n\tconst response = await fetch(`${address}/api/v2/user`);\n\tconst response_data = await response.json();\n\n\tuser = response_data;\n\tconsole.log(\"user:\", user);\n\n\tsocket = await io(address,\n\t{\n\t\tpath: '/chat',\n\t\tquery:\n\t\t{\n\t\t\tusername: user.username,\n\t\t},\n\t})\n\tconsole.log(\"socket:\", socket);\n\n\tsocket.on('connect', function(){\n\t\tconsole.log(\"socket.io connected\");\n\t});\n\tsocket.on('disconnect', function(){\n\t\tconsole.log(\"socket.io disconnected\");\n\t});\n\tsocket.on('connect_error', function(){\n\t\tconsole.log(\"socket.io connect_error\");\n\t});\n\tsocket.on('connect_timeout', function(){\n\t\tconsole.log(\"socket.io connect_timeout\");\n\t});\n\tsocket.on('error', function(){\n\t\tconsole.log(\"socket.io error\");\n\t});\n\tsocket.on('reconnect', function(){\n\t\tconsole.log(\"socket.io reconnect\");\n\t});\n\tsocket.on('reconnect_attempt', function(){\n\t\tconsole.log(\"socket.io reconnect_attempt\");\n\t});\n\tsocket.on('reconnecting', function(){\n\t\tconsole.log(\"socket.io reconnecting\");\n\t});\n\tsocket.on('reconnect_error', function(){\n\t\tconsole.log(\"socket.io reconnect_error\");\n\t});\n\tsocket.on('reconnect_failed', function(){\n\t\tconsole.log(\"socket.io reconnect_failed\");\n\t});\n\tsocket.on('ping', function(){\n\t\tconsole.log(\"socket.io ping\");\n\t});\n\tsocket.on('pong', function(){\n\t\tconsole.log(\"socket.io pong\");\n\t});\n\n\tsocket.on('message', function(from, message)\n\t{\n\t\tconsole.log(\"received msg:\", message, from);\n\t\tif (from === user.username)\n\t\t\tfrom = \"me\";\n\t\tmsgs.update(msgs => [...msgs, { content: message, name: from }]);\n\t});\n}\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","msgs","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","user","socket","address","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Element_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Store_chat.ts","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Element_msg.svelte","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Element_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Socket_events.ts","../../src/pieces/chat/Socket_states.ts","../../src/pieces/chat/Socket_init.ts","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n","\n\n
    \n\t\n
    \n\n\n\n\n","import { writable } from 'svelte/store';\n\nexport let msgs = writable([]);\n\nexport let user;\nexport let socket;\n\nexport function set_user(new_user) { user = new_user; }\nexport function set_socket(new_socket) { socket = new_socket; }\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","export function socket_events(socket)\n{\n\tsocket.on('message', function(from, message)\n\t{\n\t\tconsole.log(\"received msg:\", message, from);\n\t\tif (from === user.username)\n\t\t\tfrom = \"me\";\n\t\tmsgs.update(msgs => [...msgs, { content: message, name: from }]);\n\t});\n}\n","export function connection_states(socket)\n{\n\tsocket.on('connect', function(){ console.log(\"socket.io connected\"); });\n\tsocket.on('disconnect', function(){ console.log(\"socket.io disconnected\"); });\n\tsocket.on('connect_error', function(){ console.log(\"socket.io connect_error\"); });\n\tsocket.on('connect_timeout', function(){ console.log(\"socket.io connect_timeout\"); });\n\tsocket.on('error', function(){ console.log(\"socket.io error\"); });\n\tsocket.on('reconnect', function(){ console.log(\"socket.io reconnect\"); });\n\tsocket.on('reconnect_attempt', function(){ console.log(\"socket.io reconnect_attempt\"); });\n\tsocket.on('reconnecting', function(){ console.log(\"socket.io reconnecting\"); });\n\tsocket.on('reconnect_error', function(){ console.log(\"socket.io reconnect_error\"); });\n\tsocket.on('reconnect_failed', function(){ console.log(\"socket.io reconnect_failed\"); });\n\tsocket.on('ping', function(){ console.log(\"socket.io ping\"); });\n\tsocket.on('pong', function(){ console.log(\"socket.io pong\"); });\n}\n\n","import io from 'socket.io-client';\nimport { set_socket, set_user } from './Store_chat';\nimport { socket_events } from './Socket_events';\nimport { connection_states } from './Socket_states';\n\nconst address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;\n\nexport async function init_socket()\n{\n\tconst response = await fetch(`${address}/api/v2/user`);\n\tconst response_data = await response.json();\n\n\tset_user(response_data);\n\n\tlet socket = await io(address,\n\t{\n\t\tpath: '/chat',\n\t\tquery:\n\t\t{\n\t\t\tusername: response_data.username,\n\t\t},\n\t});\n\tset_socket(socket);\n\n\tconnection_states(socket);\n\tsocket_events(socket);\n}\n\n","\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","msgs","user","socket","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte index b5638322..06b2ef15 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat.svelte @@ -1,70 +1,11 @@ - diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_box_css.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_box_css.svelte index 5947cdb1..7384b6a6 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_box_css.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_box_css.svelte @@ -1,4 +1,3 @@ - - diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_button.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Element_button.svelte similarity index 99% rename from srcs/requirements/svelte/api_front/src/pieces/chat/Chat_button.svelte rename to srcs/requirements/svelte/api_front/src/pieces/chat/Element_button.svelte index bb7fc425..748b2da3 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_button.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Element_button.svelte @@ -1,4 +1,3 @@ - \n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n","\n\n
    \n\t\n
    \n\n\n\n\n","import { writable } from 'svelte/store';\n\nexport let msgs = writable([]);\n\nexport let user;\nexport let socket;\n\nexport function set_user(new_user) { user = new_user; }\nexport function set_socket(new_socket) { socket = new_socket; }\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","export function socket_events(socket)\n{\n\tsocket.on('message', function(from, message)\n\t{\n\t\tconsole.log(\"received msg:\", message, from);\n\t\tif (from === user.username)\n\t\t\tfrom = \"me\";\n\t\tmsgs.update(msgs => [...msgs, { content: message, name: from }]);\n\t});\n}\n","export function connection_states(socket)\n{\n\tsocket.on('connect', function(){ console.log(\"socket.io connected\"); });\n\tsocket.on('disconnect', function(){ console.log(\"socket.io disconnected\"); });\n\tsocket.on('connect_error', function(){ console.log(\"socket.io connect_error\"); });\n\tsocket.on('connect_timeout', function(){ console.log(\"socket.io connect_timeout\"); });\n\tsocket.on('error', function(){ console.log(\"socket.io error\"); });\n\tsocket.on('reconnect', function(){ console.log(\"socket.io reconnect\"); });\n\tsocket.on('reconnect_attempt', function(){ console.log(\"socket.io reconnect_attempt\"); });\n\tsocket.on('reconnecting', function(){ console.log(\"socket.io reconnecting\"); });\n\tsocket.on('reconnect_error', function(){ console.log(\"socket.io reconnect_error\"); });\n\tsocket.on('reconnect_failed', function(){ console.log(\"socket.io reconnect_failed\"); });\n\tsocket.on('ping', function(){ console.log(\"socket.io ping\"); });\n\tsocket.on('pong', function(){ console.log(\"socket.io pong\"); });\n}\n\n","import io from 'socket.io-client';\nimport { set_socket, set_user } from './Store_chat';\nimport { socket_events } from './Socket_events';\nimport { connection_states } from './Socket_states';\n\nconst address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;\n\nexport async function init_socket()\n{\n\tconst response = await fetch(`${address}/api/v2/user`);\n\tconst response_data = await response.json();\n\n\tset_user(response_data);\n\n\tlet socket = await io(address,\n\t{\n\t\tpath: '/chat',\n\t\tquery:\n\t\t{\n\t\t\tusername: response_data.username,\n\t\t},\n\t});\n\tset_socket(socket);\n\n\tconnection_states(socket);\n\tsocket_events(socket);\n}\n\n","\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","msgs","user","socket","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Element_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Store_chat.ts","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Element_msg.svelte","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Element_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Socket_events.ts","../../src/pieces/chat/Socket_states.ts","../../src/pieces/chat/Socket_init.ts","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n","\n\n
    \n\t\n
    \n\n\n\n\n","import { writable } from 'svelte/store';\n\nexport let msgs = writable([]);\n\nexport let user;\nexport let socket;\n\nexport function set_user(new_user) { user = new_user; }\nexport function set_socket(new_socket) { socket = new_socket; }\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import { user, msgs } from './Store_chat';\n\nexport function socket_events(socket)\n{\n\tsocket.on('message', function(from, message)\n\t{\n\t\tconsole.log(\"received msg:\", message, from);\n\t\tif (from === user.username)\n\t\t\tfrom = \"me\";\n\t\tmsgs.update(msgs => [...msgs, { name: from, message: message }]);\n\t});\n}\n","export function connection_states(socket)\n{\n\tsocket.on('connect', function(){ console.log(\"socket.io connected\"); });\n\tsocket.on('disconnect', function(){ console.log(\"socket.io disconnected\"); });\n\tsocket.on('connect_error', function(){ console.log(\"socket.io connect_error\"); });\n\tsocket.on('connect_timeout', function(){ console.log(\"socket.io connect_timeout\"); });\n\tsocket.on('error', function(){ console.log(\"socket.io error\"); });\n\tsocket.on('reconnect', function(){ console.log(\"socket.io reconnect\"); });\n\tsocket.on('reconnect_attempt', function(){ console.log(\"socket.io reconnect_attempt\"); });\n\tsocket.on('reconnecting', function(){ console.log(\"socket.io reconnecting\"); });\n\tsocket.on('reconnect_error', function(){ console.log(\"socket.io reconnect_error\"); });\n\tsocket.on('reconnect_failed', function(){ console.log(\"socket.io reconnect_failed\"); });\n\tsocket.on('ping', function(){ console.log(\"socket.io ping\"); });\n\tsocket.on('pong', function(){ console.log(\"socket.io pong\"); });\n}\n\n","import io from 'socket.io-client';\nimport { set_socket, set_user } from './Store_chat';\nimport { socket_events } from './Socket_events';\nimport { connection_states } from './Socket_states';\n\nconst address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;\n\nexport async function init_socket()\n{\n\tconst response = await fetch(`${address}/api/v2/user`);\n\tconst response_data = await response.json();\n\n\tset_user(response_data);\n\n\tlet socket = await io(address,\n\t{\n\t\tpath: '/chat',\n\t\tquery:\n\t\t{\n\t\t\tusername: response_data.username,\n\t\t},\n\t});\n\tset_socket(socket);\n\n\tconnection_states(socket);\n\tsocket_events(socket);\n}\n\n","\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","socket","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA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"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_layouts.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_layouts.svelte index 33449262..d8048e07 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_layouts.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Chat_layouts.svelte @@ -29,6 +29,7 @@ */ function set_layouts(layout) { + console.log("layouts:", layouts); if (layout === "close") return; if (layout === layouts[0]) @@ -37,6 +38,7 @@ layouts = [layout, "home"]; else layouts = [layout, layouts[0]]; + console.log("- layouts:", layouts); } $: set_layouts(layout); @@ -48,7 +50,7 @@ {:else if layout === "close"} - + {:else if layout === "room"} diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_close.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_close.svelte index ab09f694..01612dcf 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_close.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_close.svelte @@ -1,12 +1,13 @@ -
    -
    diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Socket_events.ts b/srcs/requirements/svelte/api_front/src/pieces/chat/Socket_events.ts index 6790ddf6..b5014bc1 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Socket_events.ts +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Socket_events.ts @@ -1,3 +1,5 @@ +import { user, msgs } from './Store_chat'; + export function socket_events(socket) { socket.on('message', function(from, message) @@ -5,6 +7,6 @@ export function socket_events(socket) console.log("received msg:", message, from); if (from === user.username) from = "me"; - msgs.update(msgs => [...msgs, { content: message, name: from }]); + msgs.update(msgs => [...msgs, { name: from, message: message }]); }); } From f4dc5cde53c00ed1f9ba99edc1656733d8bb3df6 Mon Sep 17 00:00:00 2001 From: simplonco Date: Sun, 8 Jan 2023 17:49:36 +0100 Subject: [PATCH 24/35] wip get all public rooms but no users --- .../api_back/src/chat/chat.controller.ts | 18 +- .../nestjs/api_back/src/chat/chat.service.ts | 34 +- .../svelte/api_front/public/build/bundle.js | 513 ++++++++++++++---- .../api_front/public/build/bundle.js.map | 2 +- .../src/pieces/chat/Layout_create.svelte | 9 +- .../src/pieces/chat/Layout_home.svelte | 2 +- .../src/pieces/chat/Layout_new.svelte | 58 +- 7 files changed, 492 insertions(+), 144 deletions(-) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts index 28f008d5..fa755ed7 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.controller.ts @@ -14,11 +14,21 @@ export class ChatController { @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) - @Get('rooms') - async getRooms(@Req() req, @Res() res): Promise + @Get('myrooms') + async getMyRooms(@Req() req, @Res() res): Promise { - console.log("- in getRooms controller"); - const rooms = await this.chatService.getRooms(req.user); + console.log("- in getMyRooms controller"); + const rooms = await this.chatService.getMyRooms(req.user); + return res.status(HttpStatus.OK).json({ rooms: rooms }); + } + + @UseGuards(AuthenticateGuard) + @UseGuards(TwoFactorGuard) + @Get('allrooms') + async getAllRooms(@Req() req, @Res() res): Promise + { + console.log("- in getAllRooms controller"); + const rooms = await this.chatService.getAllNotMyRooms(req.user); return res.status(HttpStatus.OK).json({ rooms: rooms }); } diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index 621e591c..ab9cc98f 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -24,13 +24,29 @@ export class ChatService { return new Promise(resolve => setTimeout(resolve, ms)); } - async getRooms(user: User) + async getMyRooms(user: User) { - console.log("-- in getRooms service"); + console.log("-- in getMyRooms service"); const rooms = await this.chatroomRepository .createQueryBuilder('chatroom') .where(':user_id IN (chatroom.users)', { user_id: user.fortyTwoId }) .getMany(); + + return rooms; + } + + async getAllNotMyRooms(user: User) + { + console.log("-- in getAllNotMyRooms service"); + const user_db = await this.usersService.findOneByFourtyTwoId(user.fortyTwoId); + const rooms = await this.chatroomRepository + .createQueryBuilder('chatroom') + .where('chatroom.type != :type', { type: 'private' }) + .andWhere(':user_id NOT IN (chatroom.users)', { user_id: user.fortyTwoId }) + .getMany(); + //const users = await this.findAllUsers(); + //let allRooms = [...rooms, ...users]; + return rooms; } @@ -58,6 +74,8 @@ export class ChatService { return room; } + /* temp ***************************************** + */ async findUserByName(name: string) { console.log("-- in findUserByName service"); @@ -69,6 +87,18 @@ export class ChatService { return user; } + /* temp ***************************************** + */ + async findAllUsers() + { + console.log("-- in findAllUsers service"); + const users = await this.userRepository + .createQueryBuilder('user') + .getMany(); + + return users; + } + async setCurrentRoom(user: User, name: string) { console.log("-- in setCurrentRoom service"); diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 3df245cc..18a8d838 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -1228,7 +1228,7 @@ var app = (function () { /* node_modules/svelte-spa-router/Router.svelte generated by Svelte v3.53.1 */ - const { Error: Error_1, Object: Object_1, console: console_1$b } = globals; + const { Error: Error_1, Object: Object_1, console: console_1$c } = globals; // (267:0) {:else} function create_else_block$6(ctx) { @@ -2008,7 +2008,7 @@ var app = (function () { const writable_props = ['routes', 'prefix', 'restoreScrollState']; Object_1.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$b.warn(` was created with unknown prop '${key}'`); + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$c.warn(` was created with unknown prop '${key}'`); }); function routeEvent_handler(event) { @@ -2292,7 +2292,7 @@ var app = (function () { /* src/pieces/Header.svelte generated by Svelte v3.53.1 */ - const { console: console_1$a } = globals; + const { console: console_1$b } = globals; const file$v = "src/pieces/Header.svelte"; // (27:39) @@ -2551,7 +2551,7 @@ var app = (function () { const writable_props = []; Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$a.warn(`
    was created with unknown prop '${key}'`); + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$b.warn(`
    was created with unknown prop '${key}'`); }); const click_handler = () => push('/'); @@ -3905,10 +3905,10 @@ var app = (function () { /* src/pieces/chat/Layout_home.svelte generated by Svelte v3.53.1 */ - const { console: console_1$9 } = globals; + const { console: console_1$a } = globals; const file$p = "src/pieces/chat/Layout_home.svelte"; - function get_each_context$5(ctx, list, i) { + function get_each_context$6(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[7] = list[i]; return child_ctx; @@ -3996,7 +3996,7 @@ var app = (function () { } // (1:0) \";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n","\n\n
    \n\t\n
    \n\n\n\n\n","import { writable } from 'svelte/store';\n\nexport let msgs = writable([]);\n\nexport let user;\nexport let socket;\n\nexport function set_user(new_user) { user = new_user; }\nexport function set_socket(new_socket) { socket = new_socket; }\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import { user, msgs } from './Store_chat';\n\nexport function socket_events(socket)\n{\n\tsocket.on('message', function(from, message)\n\t{\n\t\tconsole.log(\"received msg:\", message, from);\n\t\tif (from === user.username)\n\t\t\tfrom = \"me\";\n\t\tmsgs.update(msgs => [...msgs, { name: from, message: message }]);\n\t});\n}\n","export function connection_states(socket)\n{\n\tsocket.on('connect', function(){ console.log(\"socket.io connected\"); });\n\tsocket.on('disconnect', function(){ console.log(\"socket.io disconnected\"); });\n\tsocket.on('connect_error', function(){ console.log(\"socket.io connect_error\"); });\n\tsocket.on('connect_timeout', function(){ console.log(\"socket.io connect_timeout\"); });\n\tsocket.on('error', function(){ console.log(\"socket.io error\"); });\n\tsocket.on('reconnect', function(){ console.log(\"socket.io reconnect\"); });\n\tsocket.on('reconnect_attempt', function(){ console.log(\"socket.io reconnect_attempt\"); });\n\tsocket.on('reconnecting', function(){ console.log(\"socket.io reconnecting\"); });\n\tsocket.on('reconnect_error', function(){ console.log(\"socket.io reconnect_error\"); });\n\tsocket.on('reconnect_failed', function(){ console.log(\"socket.io reconnect_failed\"); });\n\tsocket.on('ping', function(){ console.log(\"socket.io ping\"); });\n\tsocket.on('pong', function(){ console.log(\"socket.io pong\"); });\n}\n\n","import io from 'socket.io-client';\nimport { set_socket, set_user } from './Store_chat';\nimport { socket_events } from './Socket_events';\nimport { connection_states } from './Socket_states';\n\nconst address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;\n\nexport async function init_socket()\n{\n\tconst response = await fetch(`${address}/api/v2/user`);\n\tconst response_data = await response.json();\n\n\tset_user(response_data);\n\n\tlet socket = await io(address,\n\t{\n\t\tpath: '/chat',\n\t\tquery:\n\t\t{\n\t\t\tusername: response_data.username,\n\t\t},\n\t});\n\tset_socket(socket);\n\n\tconnection_states(socket);\n\tsocket_events(socket);\n}\n\n","\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","socket","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Element_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Store_chat.ts","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Element_msg.svelte","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Element_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Socket_events.ts","../../src/pieces/chat/Socket_states.ts","../../src/pieces/chat/Socket_init.ts","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n","\n\n
    \n\t\n
    \n\n\n\n\n","import { writable } from 'svelte/store';\n\nexport let msgs = writable([]);\n\nexport let user;\nexport let socket;\n\nexport function set_user(new_user) { user = new_user; }\nexport function set_socket(new_socket) { socket = new_socket; }\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response_status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\t{#if layout === \"home\"}\n\t\t\n\n\t{:else if layout === \"close\"}\n\t\t\n\n\t{:else if layout === \"room\"}\n\t\t\n\n\t{:else if layout === \"new\"}\n\t\t\n\n\t{:else if layout === \"settings\"}\n\t\t\n\n\t{:else if layout === \"room_set\"}\n\t\t\n\n\t{:else if layout === \"protected\"}\n\t\t\n\n\t{:else if layout === \"create\"}\n\t\t\n\n\t{:else if layout === \"mute\"}\n\t\t\n\n\t{:else if layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import { user, msgs } from './Store_chat';\n\nexport function socket_events(socket)\n{\n\tsocket.on('message', function(from, message)\n\t{\n\t\tconsole.log(\"received msg:\", message, from);\n\t\tif (from === user.username)\n\t\t\tfrom = \"me\";\n\t\tmsgs.update(msgs => [...msgs, { name: from, message: message }]);\n\t});\n}\n","export function connection_states(socket)\n{\n\tsocket.on('connect', function(){ console.log(\"socket.io connected\"); });\n\tsocket.on('disconnect', function(){ console.log(\"socket.io disconnected\"); });\n\tsocket.on('connect_error', function(){ console.log(\"socket.io connect_error\"); });\n\tsocket.on('connect_timeout', function(){ console.log(\"socket.io connect_timeout\"); });\n\tsocket.on('error', function(){ console.log(\"socket.io error\"); });\n\tsocket.on('reconnect', function(){ console.log(\"socket.io reconnect\"); });\n\tsocket.on('reconnect_attempt', function(){ console.log(\"socket.io reconnect_attempt\"); });\n\tsocket.on('reconnecting', function(){ console.log(\"socket.io reconnecting\"); });\n\tsocket.on('reconnect_error', function(){ console.log(\"socket.io reconnect_error\"); });\n\tsocket.on('reconnect_failed', function(){ console.log(\"socket.io reconnect_failed\"); });\n\tsocket.on('ping', function(){ console.log(\"socket.io ping\"); });\n\tsocket.on('pong', function(){ console.log(\"socket.io pong\"); });\n}\n\n","import io from 'socket.io-client';\nimport { set_socket, set_user } from './Store_chat';\nimport { socket_events } from './Socket_events';\nimport { connection_states } from './Socket_states';\n\nconst address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;\n\nexport async function init_socket()\n{\n\tconst response = await fetch(`${address}/api/v2/user`);\n\tconst response_data = await response.json();\n\n\tset_user(response_data);\n\n\tlet socket = await io(address,\n\t{\n\t\tpath: '/chat',\n\t\tquery:\n\t\t{\n\t\t\tusername: response_data.username,\n\t\t},\n\t});\n\tset_socket(socket);\n\n\tconnection_states(socket);\n\tsocket_events(socket);\n}\n\n","\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n
    testing when there's tons of stuff
    \n\n\n\n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n\n
    \n\n
    \n

    All Users

    \n {#if allUsers === undefined}\n
    Failed to load all users
    \n {:else}\n \n \n\n \n \n {#each allUsers as aUser }\n \n
    viewAUser(aUser)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n\n
    \n\n\n
    \n\n

    Main Display

    \n\n \n \n \n \n {#if userBeingViewed}\n
    {userBeingViewed.username}
    \n \n \n\n \n \n \n {/if}\n\n \n\n \n\n\n\n \n\n \n\n\n \n \n\n \n\n \n \n\n \n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n\n
    \n\n\n\n\n
    \n \n
    \n\n\n\n\n\n","\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport const soundPongArr: HTMLAudioElement[] = [\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"),\n\tnew Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\")\n];\nexport const soundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\nexport function initAudio(sound: string)\n{\n\tlet muteFlag: boolean;\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t}\n\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, callback?: (count: number) => void, endCallback?: () => void)\n{\n\tconsole.log(\"countdown \", count);\n\tif (count > 0) {\n\t\tif (callback) {\n\t\t\tcallback(count);\n\t\t}\n\t\tsetTimeout(countdown, 1000, --count, callback, endCallback);\n\t}\n\telse if (endCallback) {\n\t\tendCallback();\n\t}\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchEnded: false,\n\tmatchAbort: false\n}\n\nexport function resetGameState() {\n\tgameState.matchEnded = false;\n\tgameState.matchAbort = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket; /* TODO: A way to still use \"const\" not \"let\" ? */\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAbort = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\tsoundRoblox.play();\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\tsoundRoblox.play();\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n\t// WIP\n\t/* msg.win();\n\tif (data.forfeit) {\n\t\tmsg.forfeit(clientInfo.side);\n\t} */\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset() {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = \"\";\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tlet i = Math.floor(random(0, soundPongArr.length));\n\t\tsoundPongArr[ i ].play();\n\t\tconsole.log(`sound_i=${i}`); // debug log\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (pong)\n\t{\n\t\tclearInterval(pong.handleInputInterval);\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tsetPong(null);\n\t}\n\tif (socket && socket.OPEN) {\n\t\tsocket.close();\n\t}\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(options: InitOptions, gameAreaId: string, token: string)\n{\n\tconst matchOptions = computeMatchOptions(options);\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tcountdown(c.matchStartDelay/1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key);},\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showMatchEnded === true}\n\t\t
    \n\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t
    \n\t{/if}\n\t{#if showError === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t\t\t

    {errorMessageWhenAttemptingToGetATicket}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t\n\t{#if !hiddenGame}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n\n\t{#if showWaitPage === true}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t\t\t

    {waitingMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOption === true}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited === true}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tCurrent invitation(s)\n\t\t\t\t\t\t{#if isThereAnyInvitation}\n\t\t\t\t\t\t\t\t{#each invitations as invitation }\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{#if isThereAnyInvitation === false}\n\t\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n\n
    \n\t
    \n\t\t
    \n\t\t\t

    Ranking

    \n\t\t
    \n\t
    \n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{#each allUsers as user, i}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n\t\t
    \n\t
    \n
    \n\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{#if hiddenMatchList}\n\t\t\t\t\t\tno match available\n\t\t\t\t\t{:else}\n\t\t\t\t\t\toptions\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport TestPage from '../pages/TmpTestPage.svelte';\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': Game,\n '/spectator': GameSpectator,\n '/ranking' : Ranking,\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","socket","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","io","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","gameAreaId","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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A,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UA8BO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OA7BN,UAAY,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACZ,UA2BQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OA1BP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;;OAIhC,UAAoC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;qEAvKN,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARvE,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCWgE,MAEpF,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGkC,QAElC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG4D,OAE5D,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAIqD,aAEpD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAMO,cAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACO,iBAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAEE,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAIC,YAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAEE,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAvCwB,GAAI,CAAA,CAAA,CAAA;;sCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe7E,CAAA,IAAA,SAAA,YAAA,GAAI,QAAK,UAAU,IAAAC,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBlB,CAAA,IAAA,SAAA,YAAA,GAAI,QAAK,UAAU,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OArC1B,UAgDK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;OAvBJ,UAqBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OApBJ,UAAqC,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;qEAvBN,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe7E,GAAA,aAAA,GAAI,QAAK,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBlB,GAAA,aAAA,GAAI,QAAK,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA9Cd,CAAA,IAAA,EAAA,MAAM,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IACX,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IAEhB,CAAA,IAAA,IAAI,GAAG,MAAM,CAAA;IACb,CAAA,IAAA,KAAK,GAAG,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICqEY,CAAA,IAAA,gBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHT,CAAA,IAAA,gBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHP,CAAA,IAAA,kBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,oBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHN,CAAA,IAAA,qBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,uBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHX,CAAA,IAAA,mBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,qBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,CAAA,IAAA,oBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,sBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHd,CAAA,IAAA,eAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,CAAA,IAAA,gBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,CAAA,IAAA,iBAAA,GAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,mBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAJpC,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGZ,EAAA,eAAA,GAAM,QAAK,OAAO,EAAA,OAAA,CAAA,CAAA;IAGlB,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGjB,EAAA,eAAA,GAAM,QAAK,KAAK,EAAA,OAAA,CAAA,CAAA;IAGhB,EAAA,eAAA,GAAM,QAAK,UAAU,EAAA,OAAA,CAAA,CAAA;IAGrB,EAAA,eAAA,GAAM,QAAK,UAAU,EAAA,OAAA,CAAA,CAAA;IAGrB,EAAA,eAAA,GAAM,QAAK,WAAW,EAAA,OAAA,CAAA,CAAA;IAGtB,EAAA,eAAA,GAAM,QAAK,QAAQ,EAAA,OAAA,CAAA,CAAA;IAGnB,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGjB,EAAA,eAAA,GAAM,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA7BX,GAAM,CAAA,CAAA,CAAA;yBAAS,GAAK,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEAApB,GAAM,CAAA,CAAA,CAAA,CAAA;kEAAS,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAzBzB,KAAK,EAAA,GAAA,OAAA,CAAA;IACZ,CAAA,IAAA,IAAI,GAAG,EAAE,CAAA;IACT,CAAA,IAAA,KAAK,GAAG,KAAK,CAAA;IACb,CAAA,IAAA,MAAM,GAAG,OAAO,CAAA;SAChB,OAAO,GAAA,CAAI,MAAM,EAAE,MAAM,CAAA,CAAA;;;;IAIpB,CAAA,SAAA,WAAW,CAAC,MAAM,EAAA;IAE1B,EAAA,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAA,CAAA;IAC3B,EAAA,IAAA,MAAM,KAAK,OAAO,EAAA,OAAA;UAElB,MAAM,KAAK,OAAO,CAAC,CAAC,CAAA,EAAA,OAAA;IAEpB,EAAA,IAAA,MAAM,KAAK,OAAO,CAAC,CAAC,CAAA,EAAA,YAAA,CAAA,CAAA,EACvB,OAAO,GAAI,CAAA,MAAM,EAAE,MAAM,yBAEzB,OAAO,GAAA,CAAI,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA;IAC7B,EAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAE/B,WAAW,CAAC,MAAM,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC1CtB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;IAC5B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;IACzC,IAAI,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;;ICX5D,MAAMG,gBAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC7E,MAAMC,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE;IACA,MAAMC,QAAM,GAAG,GAAG,IAAI;IACtB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IACnD,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,QAAQ,KAAK;IACnE,IAAI,IAAIF,gBAAc,IAAI,IAAI,YAAY,IAAI,EAAE;IAChD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,SAAS;IACT,KAAK;IACL,SAAS,IAAIC,uBAAqB;IAClC,SAAS,IAAI,YAAY,WAAW,IAAIC,QAAM,CAAC,IAAI,CAAC,CAAC,EAAE;IACvD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClE,SAAS;IACT,KAAK;IACL;IACA,IAAI,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;IAC/C,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,GAAG,YAAY;IACpC,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC;IACN,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;;ICvCD,MAAM,KAAK,GAAG,kEAAkE,CAAC;IACjF;IACA,MAAMC,QAAM,GAAG,OAAO,UAAU,KAAK,WAAW,GAAG,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvC,IAAIA,QAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAiBM,MAAMC,QAAM,GAAG,CAAC,MAAM,KAAK;IAClC,IAAI,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACnH,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC3C,QAAQ,YAAY,EAAE,CAAC;IACvB,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC/C,YAAY,YAAY,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL,IAAI,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3F,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;IACjC,QAAQ,QAAQ,GAAGD,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IACvD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,EAAE,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC9D,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC7D,KAAK;IACL,IAAI,OAAO,WAAW,CAAC;IACvB,CAAC;;ICvCD,MAAMF,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,UAAU,KAAK;IACpD,IAAI,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;IAC3C,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC;IACtD,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;IACtB,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IAC5E,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,UAAU,EAAE;IACrB,QAAQ,OAAO,YAAY,CAAC;IAC5B,KAAK;IACL,IAAI,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC;IACnC,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,YAAY,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,SAAS,CAAC;IACV,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACjD,IAAI,IAAIA,uBAAqB,EAAE;IAC/B,QAAQ,MAAM,OAAO,GAAGG,QAAM,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,OAAO,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtC,KAAK;IACL,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACxC,IAAI,QAAQ,UAAU;IACtB,QAAQ,KAAK,MAAM;IACnB,YAAY,OAAO,IAAI,YAAY,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACzE,QAAQ,KAAK,aAAa,CAAC;IAC3B,QAAQ;IACR,YAAY,OAAO,IAAI,CAAC;IACxB,KAAK;IACL,CAAC;;IC7CD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK;IAC7C;IACA,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,IAAI,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;IACnC;IACA,QAAQ,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,IAAI;IACrD,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;IAC9C,YAAY,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE;IACpC,gBAAgB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,aAAa;IACb,SAAS,CAAC,CAAC;IACX,KAAK,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,UAAU,KAAK;IACtD,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACpD,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1E,QAAQ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,QAAQ,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE;IAC5C,YAAY,MAAM;IAClB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IACK,MAAMC,UAAQ,GAAG,CAAC;;IC9BzB;IACA;IACA;IACA;IACA;AACA;IACO,SAAS,OAAO,CAAC,GAAG,EAAE;IAC7B,EAAE,IAAI,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,KAAK,CAAC,GAAG,EAAE;IACpB,EAAE,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;IACrC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,EAAE;IACpB,OAAO,CAAC,SAAS,CAAC,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IACxD,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE;IACpE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC5C,EAAE,SAAS,EAAE,GAAG;IAChB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9B,GAAG;AACH;IACA,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrB,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,GAAG;IACrB,OAAO,CAAC,SAAS,CAAC,cAAc;IAChC,OAAO,CAAC,SAAS,CAAC,kBAAkB;IACpC,OAAO,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC3D,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC/C,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC;AAC9B;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,EAAE,CAAC;IACT,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;IACnC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM;IACZ,KAAK;IACL,GAAG;AACH;IACA;IACA;IACA,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAC9B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,CAAC;IACxC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAC/C;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,GAAG;AACH;IACA,EAAE,IAAI,SAAS,EAAE;IACjB,IAAI,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;IAC1D,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AACxD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,CAAC;IAC7C,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,CAAC;IAChD,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;;ICxKM,MAAM,cAAc,GAAG,CAAC,MAAM;IACrC,IAAI,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,SAAS,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC5C,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;IACzC,KAAK;IACL,CAAC,GAAG;;ICTG,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE;IACnC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;IACnC,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IACD;IACA,MAAM,kBAAkB,GAAG,UAAU,CAAC;IACtC,MAAM,oBAAoB,GAAG,YAAY,CAAC;IACnC,SAAS,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE;IACjD,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;IAC9B,QAAQ,GAAG,CAAC,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAACC,cAAU,CAAC,CAAC;IAC/D,QAAQ,GAAG,CAAC,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACnE,KAAK;IACL,SAAS;IACT,QAAQ,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACvD,QAAQ,GAAG,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IAC3D,KAAK;IACL,CAAC;IACD;IACA,MAAM,eAAe,GAAG,IAAI,CAAC;IAC7B;IACO,SAAS,UAAU,CAAC,GAAG,EAAE;IAChC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK;IACL;IACA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC;IACrE,CAAC;IACD,SAAS,UAAU,CAAC,GAAG,EAAE;IACzB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAChD,QAAQ,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,QAAQ,IAAI,CAAC,GAAG,IAAI,EAAE;IACtB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,KAAK,EAAE;IAC5B,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE;IAC5C,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa;IACb,YAAY,CAAC,EAAE,CAAC;IAChB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB;;IChDA,MAAM,cAAc,SAAS,KAAK,CAAC;IACnC,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC9C,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACvC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IACrC,KAAK;IACL,CAAC;IACM,MAAM,SAAS,SAAS,OAAO,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC1C,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,IAAI,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE;IACpE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,SAGS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACnC,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,KAAK;IACL;;ICnHA;IAEA,MAAM,QAAQ,GAAG,kEAAkE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC;IACrH,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAC1B;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAASC,QAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;IACrB,IAAI,GAAG;IACP,QAAQ,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IACnD,QAAQ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;IACvC,KAAK,QAAQ,GAAG,GAAG,CAAC,EAAE;IACtB,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC;IAeD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,KAAK,GAAG;IACxB,IAAI,MAAM,GAAG,GAAGA,QAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,KAAK,IAAI;IACpB,QAAQ,OAAO,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC;IACpC,IAAI,OAAO,GAAG,GAAG,GAAG,GAAGA,QAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD;IACA;IACA;IACA,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;IACtB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;;ICjDxB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;IACvB,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,CAAC,MAAM;IAC1B,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC3B,YAAY,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,SAAS;IACT,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,EAAE,EAAE;IAC3B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAClD,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,QAAQ,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf;;ICjCA;IACA,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI;IACJ,IAAI,KAAK,GAAG,OAAO,cAAc,KAAK,WAAW;IACjD,QAAQ,iBAAiB,IAAI,IAAI,cAAc,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,EAAE;IACZ;IACA;IACA,CAAC;IACM,MAAM,OAAO,GAAG,KAAK;;ICV5B;IAGO,SAAS,GAAG,CAAC,IAAI,EAAE;IAC1B,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC;IACA,IAAI,IAAI;IACR,QAAQ,IAAI,WAAW,KAAK,OAAO,cAAc,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE;IAC5E,YAAY,OAAO,IAAI,cAAc,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL,IAAI,OAAO,CAAC,EAAE,GAAG;IACjB,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAID,cAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9F,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,GAAG;IACrB,KAAK;IACL;;ICVA,SAAS,KAAK,GAAG,GAAG;IACpB,MAAM,OAAO,GAAG,CAAC,YAAY;IAC7B,IAAI,MAAM,GAAG,GAAG,IAAIE,GAAc,CAAC;IACnC,QAAQ,OAAO,EAAE,KAAK;IACtB,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC;IACpC,CAAC,GAAG,CAAC;IACE,MAAM,OAAO,SAAS,SAAS,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,MAAM,KAAK,GAAG,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACzD,YAAY,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,EAAE;IACvB,gBAAgB,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5C,aAAa;IACb,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,CAAC,OAAO,QAAQ,KAAK,WAAW;IAChD,oBAAoB,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;IACvD,oBAAoB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACvC,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IAC5C,SAAS;IACT;IACA;IACA;IACA,QAAQ,MAAM,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;IACrD,QAAQ,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC;IACtD,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,SAAS,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC,YAAY,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC;IACV,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC5C,YAAY,IAAI,KAAK,GAAG,CAAC,CAAC;IAC1B,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;IAC9B,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY;IACtD,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChC,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY;IAC/C,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IAC5B,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI;IACnC;IACA,YAAY,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;IACzE,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B,aAAa;IACb;IACA,YAAY,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE;IACzC,gBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,CAAC;IAChF,gBAAgB,OAAO,KAAK,CAAC;IAC7B,aAAa;IACb;IACA,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS,CAAC;IACV;IACA,QAAQ,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtE;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC1C;IACA,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC9C,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IAC5C,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,aAEa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS,CAAC;IACV,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,aAAa;IACb;IACA;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,aAAa,CAAC,OAAO,EAAE,IAAI,IAAI;IACvC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;IACrC,gBAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,aAAa,CAAC,CAAC;IACf,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3D,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACnD,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;IAChD,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAClE,iBAAiB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACvE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE;IACvB,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;IACtB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC,YAAY,MAAM,EAAE,MAAM;IAC1B,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC,CAAC;IACX,QAAQ,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9B,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACnC,QAAQ,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IAC3B,KAAK;IACL,CAAC;IACM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IAC3C,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAC/D,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACtI,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAIA,GAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,QAAQ,IAAI;IACZ,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,YAAY,IAAI;IAChB,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC5C,oBAAoB,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACjF,oBAAoB,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC1D,wBAAwB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACtE,4BAA4B,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,yBAAyB;IACzB,qBAAqB;IACrB,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;IACxC,gBAAgB,IAAI;IACpB,oBAAoB,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IACrF,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE,GAAG;IAC7B,aAAa;IACb,YAAY,IAAI;IAChB,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB;IACA,YAAY,IAAI,iBAAiB,IAAI,GAAG,EAAE;IAC1C,gBAAgB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IAChE,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAC1C,gBAAgB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IACvD,aAAa;IACb,YAAY,GAAG,CAAC,kBAAkB,GAAG,MAAM;IAC3C,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,UAAU;IACxC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE;IAC/D,oBAAoB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClC,iBAAiB;IACjB,qBAAqB;IACrB;IACA;IACA,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM;IAC5C,wBAAwB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtF,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAC1B,iBAAiB;IACjB,aAAa,CAAC;IACd,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB;IACA;IACA;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACjD,YAAY,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,SAAS,EAAE;IACvB,QAAQ,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE;IAClE,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAC5C,QAAQ,IAAI,SAAS,EAAE;IACvB,YAAY,IAAI;IAChB,gBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACjC,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;IAC3C,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;IAC3B,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,YAAY,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,KAAK;IACL,CAAC;IACD,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;IACtB;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IACrC;IACA,IAAI,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;IAC3C;IACA,QAAQ,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC/C,KAAK;IACL,SAAS,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACrD,QAAQ,MAAM,gBAAgB,GAAG,YAAY,IAAIF,cAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IACpF,QAAQ,gBAAgB,CAAC,gBAAgB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IACjE,KAAK;IACL,CAAC;IACD,SAAS,aAAa,GAAG;IACzB,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE;IACpC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IAChD,YAAY,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL;;ICjZO,MAAM,QAAQ,GAAG,CAAC,MAAM;IAC/B,IAAI,MAAM,kBAAkB,GAAG,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC;IACtG,IAAI,IAAI,kBAAkB,EAAE;IAC5B,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,EAAE,YAAY,KAAK,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,KAAK;IACL,CAAC,GAAG,CAAC;IACE,MAAMG,WAAS,GAAGH,cAAU,CAAC,SAAS,IAAIA,cAAU,CAAC,YAAY,CAAC;IAClE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IACnC,MAAM,iBAAiB,GAAG,aAAa;;ICN9C;IACA,MAAM,aAAa,GAAG,OAAO,SAAS,KAAK,WAAW;IACtD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;IACzC,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC;IAC/C,MAAM,EAAE,SAAS,SAAS,CAAC;IAClC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;IAC3B;IACA,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C;IACA,QAAQ,MAAM,IAAI,GAAG,aAAa;IAClC,cAAc,EAAE;IAChB,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACnO,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IACpC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAClD,SAAS;IACT,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,qBAAqB,IAAI,CAAC,aAAa;IACvD,sBAAsB,SAAS;IAC/B,0BAA0B,IAAIG,WAAS,CAAC,GAAG,EAAE,SAAS,CAAC;IACvD,0BAA0B,IAAIA,WAAS,CAAC,GAAG,CAAC;IAC5C,sBAAsB,IAAIA,WAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1D,SAAS;IACT,QAAQ,OAAO,GAAG,EAAE;IACpB,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,iBAAiB,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,iBAAiB,GAAG;IACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM;IAC/B,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACxC,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC;IACrD,YAAY,WAAW,EAAE,6BAA6B;IACtD,YAAY,OAAO,EAAE,UAAU;IAC/B,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAClE,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACjD,YAAY,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,YAAY,MAAM,UAAU,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,YAAY,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI;IAC9D;IACA,gBAAgB,MAAM,IAAI,GAAG,EAAE,CAAC;IAchC;IACA;IACA;IACA,gBAAgB,IAAI;IACpB,oBAAoB,IAAI,qBAAqB,EAAE;IAC/C;IACA,wBAAwB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,qBAGqB;IACrB,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,UAAU,EAAE;IAChC;IACA;IACA,oBAAoB,QAAQ,CAAC,MAAM;IACnC,wBAAwB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7C,wBAAwB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;IAC5C,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAC5B,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACvD,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAChE,iBAAiB,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACrE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAClC,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,CAAC,CAACA,WAAS,CAAC;IAC3B,KAAK;IACL;;ICzLO,MAAM,UAAU,GAAG;IAC1B,IAAI,SAAS,EAAE,EAAE;IACjB,IAAI,OAAO,EAAE,OAAO;IACpB,CAAC;;ICLD;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,EAAE,GAAG,yOAAyO,CAAC;IACrP,MAAM,KAAK,GAAG;IACd,IAAI,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IACjJ,CAAC,CAAC;IACK,SAAS,KAAK,CAAC,GAAG,EAAE;IAC3B,IAAI,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1G,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,KAAK;IACL,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;IACzB,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjF,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3F,QAAQ,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,KAAK;IACL,IAAI,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,IAAI,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD,SAAS,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;IACtD,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;IAC/B,QAAQ,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IACrE,QAAQ,IAAI,EAAE,EAAE;IAChB,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC1B,SAAS;IACT,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,CAAC;IAChB;;IC1CO,MAAMC,QAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE;IAChC,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,IAAI,CAAC;IACvB,SAAS;IACT,QAAQ,IAAI,GAAG,EAAE;IACjB,YAAY,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,YAAY,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;IACrC,YAAY,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC;IAC7E,YAAY,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACjC,YAAY,IAAI,GAAG,CAAC,KAAK;IACzB,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,SAAS;IACT,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE;IAC5B,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAClD,SAAS;IACT,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM;IACnB,YAAY,IAAI,IAAI,IAAI,CAAC,MAAM;IAC/B,kBAAkB,IAAI,CAAC,MAAM;IAC7B,kBAAkB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACpF,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,QAAQ;IACrB,YAAY,IAAI,CAAC,QAAQ;IACzB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;IACpF,QAAQ,IAAI,CAAC,IAAI;IACjB,YAAY,IAAI,CAAC,IAAI;IACrB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI;IACjE,sBAAsB,QAAQ,CAAC,IAAI;IACnC,sBAAsB,IAAI,CAAC,MAAM;IACjC,0BAA0B,KAAK;IAC/B,0BAA0B,IAAI,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtE,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,YAAY,IAAI,EAAE,YAAY;IAC9B,YAAY,KAAK,EAAE,KAAK;IACxB,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,OAAO,EAAE,IAAI;IACzB,YAAY,cAAc,EAAE,GAAG;IAC/B,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,kBAAkB,EAAE,IAAI;IACpC,YAAY,iBAAiB,EAAE;IAC/B,gBAAgB,SAAS,EAAE,IAAI;IAC/B,aAAa;IACb,YAAY,gBAAgB,EAAE,EAAE;IAChC,YAAY,mBAAmB,EAAE,IAAI;IACrC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACjE,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACvB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,QAAQ,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACpD,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;IAC/C;IACA;IACA;IACA,gBAAgB,IAAI,CAAC,yBAAyB,GAAG,MAAM;IACvD,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC;IACA,wBAAwB,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAC5D,wBAAwB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC/C,qBAAqB;IACrB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACxF,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;IAC/C,gBAAgB,IAAI,CAAC,oBAAoB,GAAG,MAAM;IAClD,oBAAoB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;IACpD,wBAAwB,WAAW,EAAE,yBAAyB;IAC9D,qBAAqB,CAAC,CAAC;IACvB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC9E,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,eAAe,CAAC,IAAI,EAAE;IAC1B,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD;IACA,QAAQ,KAAK,CAAC,GAAG,GAAGL,UAAQ,CAAC;IAC7B;IACA,QAAQ,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC/B;IACA,QAAQ,IAAI,IAAI,CAAC,EAAE;IACnB,YAAY,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IAChC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE;IACpF,YAAY,KAAK;IACjB,YAAY,MAAM,EAAE,IAAI;IACxB,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACnC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;IAC/B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;IAC3B,SAAS,CAAC,CAAC;IACX,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,SAAS,CAAC;IACtB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe;IACrC,YAAYK,QAAM,CAAC,qBAAqB;IACxC,YAAY,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;IACzD,YAAY,SAAS,GAAG,WAAW,CAAC;IACpC,SAAS;IACT,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;IAC/C;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACtE,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,aAAa;IACb,YAAY,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC;IACA,QAAQ,IAAI;IACZ,YAAY,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACpC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,SAAS,EAAE;IAC5B,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC;IACA,QAAQ,SAAS;IACjB,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,IAAI,EAAE;IAChB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI;IAC5C,gBAAgB,IAAI,MAAM;IAC1B,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC,IAAI,EAAE;IACjE,oBAAoB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1C,oBAAoB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,oBAAoB,IAAI,CAAC,SAAS;IAClC,wBAAwB,OAAO;IAC/B,oBAAoBA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC;IAClF,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM;IAC/C,wBAAwB,IAAI,MAAM;IAClC,4BAA4B,OAAO;IACnC,wBAAwB,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxD,4BAA4B,OAAO;IACnC,wBAAwB,OAAO,EAAE,CAAC;IAClC,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrD,wBAAwB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9D,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChE,wBAAwB,SAAS,GAAG,IAAI,CAAC;IACzC,wBAAwB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/C,wBAAwB,IAAI,CAAC,KAAK,EAAE,CAAC;IACrC,qBAAqB,CAAC,CAAC;IACvB,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACzD;IACA,oBAAoB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IACnD,oBAAoB,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC3D,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,QAAQ,SAAS,eAAe,GAAG;IACnC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB;IACA,YAAY,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,OAAO,EAAE,CAAC;IACtB,YAAY,SAAS,CAAC,KAAK,EAAE,CAAC;IAC9B,YAAY,SAAS,GAAG,IAAI,CAAC;IAC7B,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,GAAG,IAAI;IAC/B,YAAY,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;IAC3D;IACA,YAAY,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IAC7C,YAAY,eAAe,EAAE,CAAC;IAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrD,SAAS,CAAC;IACV,QAAQ,SAAS,gBAAgB,GAAG;IACpC,YAAY,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,SAAS,OAAO,GAAG;IAC3B,YAAY,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,SAAS;IACT;IACA,QAAQ,SAAS,SAAS,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;IACzD,gBAAgB,eAAe,EAAE,CAAC;IAClC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,MAAM;IAC9B,YAAY,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAChE,YAAY,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,QAAQ,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChD,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1C,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC3E,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB;IACA;IACA,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO;IAC7B,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IAClC,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC3C,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC/B,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,YAAY,QAAQ,MAAM,CAAC,IAAI;IAC/B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5C,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,OAAO;IAC5B,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1D;IACA,oBAAoB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3C,oBAAoB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,SAAS;IAC9B,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,oBAAoB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,aAAa;IACb,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7C,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3B,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,OAAO;IACnB,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,gBAAgB,GAAG;IACvB,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IACxD,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAC1C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACvD;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ;IACnC,YAAY,CAAC,IAAI,CAAC,SAAS;IAC3B,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC;IACA;IACA,YAAY,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAChD,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,GAAG;IACzB,QAAQ,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;IAC7C,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,sBAAsB,EAAE;IACrC,YAAY,OAAO,IAAI,CAAC,WAAW,CAAC;IACpC,SAAS;IACT,QAAQ,IAAI,WAAW,GAAG,CAAC,CAAC;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1D,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa;IACb,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;IACxD,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,aAAa;IACb,YAAY,WAAW,IAAI,CAAC,CAAC;IAC7B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IACxC,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,EAAE;IACxC,YAAY,EAAE,GAAG,IAAI,CAAC;IACtB,YAAY,IAAI,GAAG,SAAS,CAAC;IAC7B,SAAS;IACT,QAAQ,IAAI,UAAU,KAAK,OAAO,OAAO,EAAE;IAC3C,YAAY,EAAE,GAAG,OAAO,CAAC;IACzB,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3E,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAChC,QAAQ,OAAO,CAAC,QAAQ,GAAG,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,OAAO,EAAE,OAAO;IAC5B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,IAAI,EAAE;IACd,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC,SAAS,CAAC;IACV,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACtD,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS,CAAC;IACV,QAAQ,MAAM,cAAc,GAAG,MAAM;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACvD,SAAS,CAAC;IACV,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACzC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IACzC,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC,wBAAwB,cAAc,EAAE,CAAC;IACzC,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,KAAK,EAAE,CAAC;IAChC,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,iBAAiB,IAAI,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,KAAK,EAAE,CAAC;IACxB,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C;IACA,YAAY,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,YAAY,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;IAC3D,gBAAgB,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAC3F,gBAAgB,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACjF,aAAa;IACb;IACA,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC;IACA,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5D;IACA;IACA,YAAY,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAClC,YAAY,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACnC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,MAAM,gBAAgB,GAAG,EAAE,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,QAAQ,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,QAAQ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC3B,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,gBAAgB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,OAAO,gBAAgB,CAAC;IAChC,KAAK;IACL,CAAC;AACDA,YAAM,CAAC,QAAQ,GAAGL,UAAQ;;ICnkB1B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE;IACzC,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;IAClB;IACA,IAAI,GAAG,GAAG,GAAG,KAAK,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,IAAI,IAAI,GAAG;IACnB,QAAQ,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAC7C;IACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACvC,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;IACzC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;IACrC,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC9C,YAAY,IAAI,WAAW,KAAK,OAAO,GAAG,EAAE;IAC5C,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;IAChD,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;IACvC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,KAAK;IACL;IACA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;IACnB,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC9C,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5B,SAAS;IACT,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IACpD,YAAY,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IAC7B,SAAS;IACT,KAAK;IACL,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;IAC/B,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;IACxD;IACA,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACjE;IACA,IAAI,GAAG,CAAC,IAAI;IACZ,QAAQ,GAAG,CAAC,QAAQ;IACpB,YAAY,KAAK;IACjB,YAAY,IAAI;IAChB,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,OAAO,GAAG,CAAC;IACf;;IC1DA,MAAM,qBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK;IACxB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC3C,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D;IACA;IACA;IACA;IACA;IACO,SAAS,QAAQ,CAAC,GAAG,EAAE;IAC9B,IAAI,QAAQ,CAAC,qBAAqB,KAAK,GAAG,YAAY,WAAW,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACjF,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC;IAC/C,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC,EAAE;IACjD,CAAC;IACM,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;IACvC,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACzC,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACpD,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IACnC,gBAAgB,OAAO,IAAI,CAAC;IAC5B,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;IACvB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,GAAG,CAAC,MAAM;IAClB,QAAQ,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;IACxC,QAAQ,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAChC,QAAQ,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;IAC3B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IACnF,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB;;IChDA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE;IAC1C,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IACnC,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC;IACxB,IAAI,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;IACxB,QAAQ,MAAM,WAAW,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACxE,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9D,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;IAClE,QAAQ,MAAM,OAAO,GAAG,EAAE,CAAC;IAC3B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IACnD,IAAI,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;IACnC,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;IAC5C,QAAQ,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;IACzD,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC;IACzB,YAAY,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,QAAQ,IAAI,YAAY,EAAE;IAC1B,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnD,SAAS;IACT,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,SAAS;IACT,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACvC,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB;;IC/EA;IACA;IACA;IACA;IACA;IACO,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,CAAC;IACtB,CAAC,UAAU,UAAU,EAAE;IACvB,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IAClD,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;IAClE,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;IAChE,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IACpC;IACA;IACA;IACO,MAAM,OAAO,CAAC;IACrB;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,QAAQ,EAAE;IAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE;IAChB,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,GAAG,EAAE;IAC1E,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;IAChC,gBAAgB,GAAG,CAAC,IAAI;IACxB,oBAAoB,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK;IACjD,0BAA0B,UAAU,CAAC,YAAY;IACjD,0BAA0B,UAAU,CAAC,UAAU,CAAC;IAChD,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB;IACA,QAAQ,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAChD,YAAY,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAChD,YAAY,GAAG,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IACzC,SAAS;IACT;IACA;IACA,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE;IACxC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IACjC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE;IAC5B,YAAY,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;IAC9B,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB,QAAQ,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChE,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IAC/C,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACO,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,OAAO,EAAE;IACzB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,GAAG,EAAE;IACb,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACrC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;IACpC,gBAAgB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACnF,aAAa;IACb,YAAY,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IACvD,gBAAgB,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IACvD;IACA,gBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrE;IACA,gBAAgB,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,EAAE;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,aAAa;IACb,SAAS;IACT,aAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;IAC9C;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACrC,gBAAgB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACpF,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChE,gBAAgB,IAAI,MAAM,EAAE;IAC5B;IACA,oBAAoB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,GAAG,EAAE;IACtB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB;IACA,QAAQ,MAAM,CAAC,GAAG;IAClB,YAAY,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC;IACV,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;IAC9C,YAAY,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAC9C,YAAY,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAC9C,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG;IAClE,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChD,YAAY,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC7D,gBAAgB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACvD,aAAa;IACb,YAAY,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IACvC,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,GAAG,KAAK,CAAC;IAC7B,oBAAoB,MAAM;IAC1B,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACxB,SAAS;IACT;IACA,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,QAAQ,IAAI,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;IACjD,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;IACjD,oBAAoB,EAAE,CAAC,CAAC;IACxB,oBAAoB,MAAM;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7B,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;IACzD,gBAAgB,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,KAAK;IACL,IAAI,QAAQ,CAAC,GAAG,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,OAAO,KAAK,CAAC;IACzB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;IACzC,QAAQ,QAAQ,IAAI;IACpB,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC;IACnD,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,OAAO,KAAK,SAAS,CAAC;IAC7C,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC;IAClF,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;IAChC,YAAY,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;IACxD,SAAS;IACT,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,mBAAmB,CAAC;IAC1B,IAAI,WAAW,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,OAAO,EAAE;IAC5B,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;IAChE;IACA,YAAY,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,YAAY,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC1C,YAAY,OAAO,MAAM,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,sBAAsB,GAAG;IAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,KAAK;IACL;;;;;;;;;;IC/RO,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;IAChC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnB,IAAI,OAAO,SAAS,UAAU,GAAG;IACjC,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,KAAK,CAAC;IACN;;ICFA;IACA;IACA;IACA;IACA,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,CAAC;IACd,IAAI,aAAa,EAAE,CAAC;IACpB,IAAI,UAAU,EAAE,CAAC;IACjB,IAAI,aAAa,EAAE,CAAC;IACpB;IACA,IAAI,WAAW,EAAE,CAAC;IAClB,IAAI,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,MAAM,MAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA,IAAI,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;IAC/B,QAAQ,KAAK,EAAE,CAAC;IAChB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC;IACA;IACA;IACA,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACrB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY;IAChC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,YAAY,GAAG;IACvB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,IAAI;IACrB,YAAY,OAAO;IACnB,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG;IACpB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,MAAM,GAAG;IACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,SAAS;IAC1B,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC;IACrC,YAAY,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3B,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW;IAC1C,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE;IAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;IACtB,QAAQ,IAAI,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;IAChD,YAAY,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,4BAA4B,CAAC,CAAC;IAChF,SAAS;IACT,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzB,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,UAAU,CAAC,KAAK;IAClC,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC;IACV,QAAQ,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IAC5B,QAAQ,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC;IAChE;IACA,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;IACzD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,YAAY,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,YAAY,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;IAClD,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS;IACpC,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC9C,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/F,QAAQ,IAAI,aAAa,EAAE,CAClB;IACT,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3C,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;IACnC,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAChC,YAAY,OAAO;IACnB,SAAS;IACT;IACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM;IACjD,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7D,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IAClD,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,iBAAiB;IACjB,aAAa;IACb,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACjE,SAAS,EAAE,OAAO,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;IACrC;IACA,YAAY,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,MAAM,EAAE;IACnB,QAAQ,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC9B,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE;IAC5C,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;IAChC,gBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,aAAa,CAAC,CAAC;IACf,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IAC7B,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa;IAC1B,YAAY,OAAO;IACnB,QAAQ,QAAQ,MAAM,CAAC,IAAI;IAC3B,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACpD,oBAAoB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC/C,oBAAoB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACvC,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,KAAK,CAAC,2LAA2L,CAAC,CAAC,CAAC;IAC/P,iBAAiB;IACjB,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;IACpC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,gBAAgB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D;IACA,gBAAgB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5C,gBAAgB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACxD,gBAAgB,MAAM;IACtB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,SAAS;IACT,KAAK;IACL,IAAI,SAAS,CAAC,IAAI,EAAE;IACpB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IAC7D,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACzD,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,aAAa;IACb,SAAS;IACT,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,EAAE,EAAE;IACZ,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;IACzB,QAAQ,OAAO,UAAU,GAAG,IAAI,EAAE;IAClC;IACA,YAAY,IAAI,IAAI;IACpB,gBAAgB,OAAO;IACvB,YAAY,IAAI,GAAG,IAAI,CAAC;IACxB,YAAY,IAAI,CAAC,MAAM,CAAC;IACxB,gBAAgB,IAAI,EAAE,UAAU,CAAC,GAAG;IACpC,gBAAgB,EAAE,EAAE,EAAE;IACtB,gBAAgB,IAAI,EAAE,IAAI;IAC1B,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,MAAM,EAAE;IAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,QAAQ,IAAI,UAAU,KAAK,OAAO,GAAG,EAAE;IACvC,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxC,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,EAAE,EAAE;IAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;IAC5C,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;IACvB;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IAC5D,YAAY,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B;IACA,YAAY,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,QAAQ,EAAE;IACvB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,QAAQ,GAAG;IACnB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACnC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,QAAQ,EAAE;IACpB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,QAAQ,EAAE;IACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,QAAQ,EAAE;IACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACjC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;IACjD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,OAAO,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,aAAa,CAAC,QAAQ,EAAE;IAC5B,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,CAAC,QAAQ,EAAE;IACjC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;IACzC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC;IACzD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAC5C,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,OAAO,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,uBAAuB,CAAC,MAAM,EAAE;IACpC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;IAC7E,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACjE,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,aAAa;IACb,SAAS;IACT,KAAK;IACL;;IC9rBA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,OAAO,CAAC,IAAI,EAAE;IAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;IAC9B,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;IACjC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;IACzC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,EAAE,GAAG,SAAS,CAAC;IAChF,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;IACtC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;IAClB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;IAChD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;;IC3DM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,SAAS,CAAC;IAC5B,SAAS;IACT,QAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,QAAQ,CAAC,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;IAC/D,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC;IACrE,QAAQ,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,mBAAmB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IACvG,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC;IACnC,YAAY,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE;IAC5C,YAAY,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE;IAC9C,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IAC9C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC;IACvD,QAAQ,IAAI,IAAI,CAAC,YAAY;IAC7B,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL,IAAI,YAAY,CAAC,CAAC,EAAE;IACpB,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,aAAa,CAAC;IACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,iBAAiB,CAAC,CAAC,EAAE;IACzB,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAC3C,QAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,mBAAmB,CAAC,CAAC,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC;IAC7C,QAAQ,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,OAAO,CAAC,CAAC,EAAE;IACf,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa;IAC/B,YAAY,IAAI,CAAC,aAAa;IAC9B,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7C,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIM,QAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACrC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC;IACA,QAAQ,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY;IAC9D,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;IACvB,SAAS,CAAC,CAAC;IACX;IACA,QAAQ,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK;IACtD,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACxC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,EAAE,EAAE;IACpB,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC;IACxB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5C,aAAa;IACb,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,YAAY,IAAI,OAAO,KAAK,CAAC,EAAE;IAC/B,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb;IACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,cAAc,EAAE,CAAC;IACjC,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B;IACA,gBAAgB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,aAAa,EAAE,OAAO,CAAC,CAAC;IACxB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB;IACA,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC;IACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnQ,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,MAAM,EAAE;IACtB;IACA,QAAQ,QAAQ,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IACtB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,MAAM,EAAE;IACrB,YAAY,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;IAC/B,gBAAgB,OAAO;IACvB,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxD,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAClC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,IAAI,IAAI,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACvD,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;IACpD,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;IACjE,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IACtC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9E;IACA,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;IACnC,oBAAoB,IAAI,GAAG,EAAE;IAC7B,wBAAwB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnD,wBAAwB,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,wBAAwB,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAClE,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC,CAAC;IACtB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,GAAG;IAClB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9C,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,KAAK;IACL;;IClWA;IACA;IACA;IACA,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,GAAG,CAAC;IACnB,QAAQ,GAAG,GAAG,SAAS,CAAC;IACxB,KAAK;IACL,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;IACvD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACzB,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7B,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ;IACvC,QAAQ,IAAI,CAAC,sBAAsB,CAAC;IACpC,QAAQ,KAAK,KAAK,IAAI,CAAC,SAAS;IAChC,QAAQ,aAAa,CAAC;IACtB,IAAI,IAAI,EAAE,CAAC;IACX,IAAI,IAAI,aAAa,EAAE;IACvB,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;IACxB,YAAY,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,SAAS;IACT,QAAQ,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACrC,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD;IACA;IACA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;IACtB,IAAI,OAAO;IACX,IAAI,MAAM;IACV,IAAI,EAAE,EAAE,MAAM;IACd,IAAI,OAAO,EAAE,MAAM;IACnB,CAAC,CAAC;;IC1CK,SAAS,aAAa,CAAC,MAAM;IACpC;IACA,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,OAAO;IAC5C,CAAC;IACD,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9C,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ;IAC5B,GAAG,IAAI,GAAG,IAAI,CAAC;IACf,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACnE,EAAE,CAAC,CAAC;IACJ;;ICXO,SAAS,iBAAiB,CAAC,MAAM;IACxC;IACA,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,YAAY,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,SAAS,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,MAAM,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,IAAI,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,cAAc,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,UAAU,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,OAAO,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,IAAI,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,GAAG,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,eAAe,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,eAAe,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9E;;ICTA,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,eAAwB,CAAC,CAAC,EAAE,MAAwB,CAAC,CAAC,CAAC;AACjF;IACO,eAAe,WAAW;IACjC;IACA,CAAC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACxD,CAAC,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC7C;IACA,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACzB;IACA,CAAC,IAAI,MAAM,GAAG,MAAMC,MAAE,CAAC,OAAO;IAC9B,CAAC;IACD,EAAE,IAAI,EAAE,OAAO;IACf,EAAE,KAAK;IACP,EAAE;IACF,GAAG,QAAQ,EAAE,aAAa,CAAC,QAAQ;IACnC,GAAG;IACH,EAAE,CAAC,CAAC;IACJ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACpB;IACA,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACvB;;;;;;;;;iCCfgB,GAAK,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;kEAAL,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IANT,CAAA,IAAA,EAAA,KAAK,GAAG,aAAa,EAAA,GAAA,OAAA,CAAA;KAEhC,WAAW,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCqBR,UAAa,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACb,UAAgC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAJK,IAAI,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IADtC,EAAA,aAAA,GAAI,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAFzB,UASK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAEL,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;OAC5C,UAA4C,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAtDtC,IAAI,CAAA;;KAER,OAAO,CAAA,YAAA;;sBAEL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCb1B,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFCWU,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,CAAA;6CAAc,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;mDAAiB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;OAA7D,UAEQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uHAFO,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,EAAA;;;;;8CAAc,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;oDAAiB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAXhD,CAAA,IAAA,EAAA,IAAI,GAAU,SAAS,EAAA,GAAA,OAAA,CAAA;IACvB,CAAA,IAAA,EAAA,IAAI,GAAW,KAAK,EAAA,GAAA,OAAA,CAAA;IACpB,CAAA,IAAA,EAAA,OAAO,GAAW,KAAK,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBC+IH,iBAAe,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARlB,CAAA,IAAA,QAAA,eAAA,GAAO,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;IAChB,CAAA,IAAA,QAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;IAKf,CAAA,IAAA,SAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qGAPgB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;OAL9D,UAeM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAdJ,UAOK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OANH,UAAoC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAGpC,UAAsF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAb,GAAA,eAAA,CAAA,MAAA,UAAA,GAAG,IAAC,QAAQ,CAAA,CAAA;;OACvF,UAA4C,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAC1C,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAE3C,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHH,UAAkE,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAClE,UAAkE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAR,GAAA,MAAA,CAAA,OAAA,WAAA,GAAG,IAAC,GAAG,CAAA;;OACjE,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;wEAZb,GAAe,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;4IAKQ,GAAO,CAAA,CAAA,CAAA,CAAA,EAAA;;;;IAAe,GAAA,IAAA,KAAA,WAAA,CAAA,IAAA,MAAA,CAAA,KAAA,aAAA,GAAG,IAAC,QAAQ,EAAA;IAAZ,IAAA,eAAA,CAAA,MAAA,UAAA,GAAG,IAAC,QAAQ,CAAA,CAAA;;;IACjE,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,eAAA,EAAA,KAAA,QAAA,MAAA,QAAA,eAAA,GAAO,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAChB,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,QAAA,MAAA,QAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAIuB,IAAA,MAAA,CAAA,OAAA,WAAA,GAAG,IAAC,GAAG,CAAA;;;IAC7C,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,SAAA,MAAA,SAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DASZ,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;OAA/B,UAAmD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;sFAA1B,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;gBAUkC,eAAa,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAFxD,CAAA,IAAA,QAAA,cAAA,GAAM,IAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;IAThC,CAAA,IAAA,QAAA,cAAA,GAAM,QAAK,SAAS,IAAAf,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;IAWT,IAAA,IAAA,gBAAA,GAAS,QAAK,SAAS;UAAG,SAAS;UAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OARjE,UASM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OANJ,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHH,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OACzC,UAA0C,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;OAC1C,UAAuC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;qEANX,GAAY,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;IAHvC,GAAA,eAAA,GAAM,QAAK,SAAS,EAAA;;;;;;;;;;;;;IASD,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,QAAA,MAAA,QAAA,cAAA,GAAM,IAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAErB,GAAA,IAAA,KAAA,iBAAA,CAAA,EAAA,cAAA,CAAA,IAAA,iBAAA,GAAS,QAAK,SAAS;SAAG,SAAS;SAAG,WAAW,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAnCvE,UAwCM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAvCJ,UAAkC,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAClC,UAoCK,CAAA,IAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA/JD,IAAI,CAAA;IACJ,CAAA,IAAA,MAAM,EAAE,SAAS,CAAA;IACjB,CAAA,IAAA,mBAAmB,GAAG,KAAK,CAAA;;;IAG3B,CAAA,IAAA,GAAG,KAAK,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAA,CAAA;;SAChC,OAAO,CAAA;WACL,MAAM,GAAA,EAAK,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAA;IACnD,CAAA,IAAA,OAAO,KAAI,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAA;;KAEvC,OAAO,CAAA,YAAA;MACL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;IAGlB,EAAA,IAAA,IAAI,KAAK,SAAS,EAAA;OACpB,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAA,CAAA;;;;sBAG/E,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA,CAAA;;IACvB,EAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAA,CAAA;IAEzB,EAAA,YAAA,CAAA,CAAA,EAAA,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,sBAAsB,EAAA,GAAA,CAAA,CAAA;;;;;IAM/B,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC9G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACH,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;IAEV,GAAA,CAAA,CAAA,KAAK,CAAO,MAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,uCAAuC,EAAA,MAAA,CAAA,CAAA,CAAA;;;;;;;;WAWlE,eAAe,GAAA,YAAA;;;IAGd,EAAA,IAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAO,KAAA,EAAE,IAAK,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,sBAAsB,EAAA;uBACzE,MAAM,CAAC,QAAQ,GAAG,sBAAsB,EAAA,MAAA,CAAA,CAAA;;IAGnC,GAAA,MAAA,IAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAO,KAAA,EAAE,IAAK,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,sBAAsB,EAAA;IAC/E,GAAA,YAAA,CAAA,CAAA,EAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAA,GAAA,CAAA,CAAA;;uBAGxB,MAAM,CAAC,QAAQ,GAAG,EAAE,EAAA,MAAA,CAAA,CAAA;;;YAEnB,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,YAAA,CAAA,EAAA;IACzE,GAAA,MAAM,EAAE,OAAO;OACf,OAAO,EAAA,EACP,cAAc,EAAE,kBAAlB,EAAA;OAEE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;QACpB,UAAU,EAAE,GAAG,CAAC,QAAQ;QACxB,wBAAwB,EAAG,GAAG,CAAC,GAAA;;IAG/B,GAAA,CAAA,CAAA,IAAI,CAAE,QAAQ,IAAA;WACV,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA,YAAA,CAAA,CAAA,EAC1B,OAAO,CAAC,QAAQ,GAAG,8BAA8B,EACzC,OAAA,CAAA,CAAA,MAAA,IAAA,QAAQ,CAAC,MAAM,KAAK,GAAG,EAC/B,IAAI,CAAC,MAAM,CAAA,CAAA,MAAA,YAAA,CAAA,CAAA,EAEX,MAAM,CAAC,QAAQ,GAAG,sBAAsB,EAAA,MAAA,CAAA,CAAA;IAGzC,GAAA,CAAA,CAAA,KAAK,CAAE,GAAG,IAAA,YAAA,CAAA,CAAA,EAAK,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAA,MAAA,CAAA,CAAA,CAAA;;;;WAM9B,YAAY,GAAA,YAAA;sBAChB,MAAM,CAAC,MAAM,GAAG,EAAE,EAAA,MAAA,CAAA,CAAA;;IACd,EAAA,IAAA,SAAS,KAAK,SAAS,EAAA;uBACzB,MAAM,CAAC,MAAM,GAAG,0BAA0B,EAAA,MAAA,CAAA,CAAA;;;;IAGzC,EAAA,MAAA,IAAI,OAAO,QAAQ,EAAA,CAAA;IACzB,EAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA,CAAA,CAAA;;;MAG/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,CAAA;;YAEV,wBAAwB,GAAG,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAEpG,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAG,MAAM,EACf,IAAI,EAAG,IAAI,EAAA,CAAA,CAAA;IAEN,EAAA,MAAA,kBAAkB,SAAS,wBAAwB,CAAA;;UACrD,kBAAkB,CAAC,EAAE,KAAK,IAAI,EAAA;IACjC,GAAA,mBAAmB,GAAG,IAAI,CAAA;uBAC1B,OAAO,CAAC,MAAM,GAAG,8BAA8B,EAAA,OAAA,CAAA,CAAA;;IAG/C,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAA,MAAA,CAAA,CAAA;;;IAGxC,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC7G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACH,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;IAEb,GAAA,CAAA,CAAA,KAAK,CAAO,MAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,uCAAuC,EAAA,MAAA,CAAA,CAAA,CAAA;;;;;;;;;;IAec,EAAA,GAAG,CAAC,QAAQ,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;IAM3B,EAAA,GAAG,CAAC,GAAG,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;MAiBlC,SAAS,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBC5G3C,sBAAoB,CAAA,CAAA;+BAAC,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;OADnC,UAAa,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACb,UAAyC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;mEAAf,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAJY,IAAI,EAAA,CAAA;;kBAAnB,GAAI,CAAA,CAAA,CAAA,KAAA,KAAA,CAAA,EAAA;gDAAJ,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;oDAAJ,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IADjC,EAAA,aAAA,GAAI,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAzCV,SAAS,EAAA,GAAA,OAAA,CAAA;SAChB,IAAI,CAAA;;KAER,OAAO,CAAA,YAAA;IACL,EAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAE,SAAS,CAAA,CAAA;;;sBAEjD,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAyB,sBAAA,EAAA,SAAS,CAChH,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;IAalB,CAAA,MAAA,UAAU,SAAS,WAAW,IAAA;IAClC,EAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAE,UAAU,CAAA,CAAA;;;sBAEzD,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAyB,sBAAA,EAAA,UAAU,CACjH,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;MAkBQ,IAAI,GAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCCyGzB,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;oCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;kCAAC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;mCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OARN,UAAgD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAUS,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,QAAQ,GAAA,EAAA,CAAA;;;;IAIzC,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJxC,UAA2E,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAI3E,UAA8C,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAC9C,UAAG,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IALoD,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAIzC,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiBpC,CAAA,IAAA,QAAA,uBAAA,GAAe,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;IACL,IAAA,SAAA,sBAAA,GAAe,IAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;OADjD,UAAoC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IAA9B,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,uBAAA,CAAA,KAAA,QAAA,MAAA,QAAA,uBAAA,GAAe,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;IACL,GAAA,IAAA,KAAA,uBAAA,CAAA,EAAA,oBAAA,CAAA,SAAA,uBAAA,GAAe,IAAC,QAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGqC,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IApC7F,EAAA,iBAAA,GAAQ,QAAK,SAAS,EAAA,OAAAC,mBAAA,CAAA;;;;;;yCA+BtB,GAAe,CAAA,CAAA,CAAA,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAnCxB,UA0GK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAxGH,UAsBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OArBH,UAAiB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;OAwBnB,UA8EK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA5EH,UAAoB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;+BAMf,GAAe,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SArJlB,MAAM,GAAA,EAAI,aAAa,EAAE,EAAE,EAAA,CAAA;IAC3B,CAAA,IAAA,GAAG,KAAI,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAA,CAAA;SAE3C,IAAI,CAAA;SACJ,QAAQ,CAAA;SACR,SAAS,CAAA;IACT,CAAA,IAAA,YAAY,EAAE,gBAAgB,CAAA;SAC9B,eAAe,CAAA;;KAInB,OAAO,CAAA,YAAA;;;MAGL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;;;MAOtB,SAAS,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACnF,yBAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;MAKtB,YAAY,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACtF,uBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;MAMpB,gBAAgB,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC1F,wBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;sBAKpB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAClF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;WAOhB,eAAe,GAAA,YAAA;sBACnB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAClF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;WAKhB,iBAAiB,GAAA,YAAA;MACrB,SAAS,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACnF,yBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;WAIhB,mBAAmB,GAAA,YAAA;MACvB,YAAY,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACtF,uBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;SAIlB,iBAAiB,CAAA;;IACf,CAAA,MAAA,iBAAiB,SAAS,uBAAuB,IAAA;MACrD,GAAG,CAAC,cAAc,GAAG,EAAE,CAAA;MACvB,MAAM,CAAC,aAAa,GAAG,EAAE,CAAA;IACrB,EAAA,IAAA,KAAK,GAAG,KAAK,CAAA;;UACb,uBAAuB,KAAK,IAAI,CAAC,QAAQ,EAAA;OAC3C,MAAM,CAAC,aAAa,GAAG,4BAA4B,CAAA;IACnD,GAAA,KAAK,GAAG,KAAK,CAAA;;OAEb,GAAG,CAAC,cAAc,GAAG,uBAAuB,CAAA;IAC5C,GAAA,KAAK,GAAG,IAAI,CAAA;;;UAGV,KAAK,EAAA;IACP,GAAA,iBAAiB,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,yBAAA,CAAA,EAAA;IAC1F,IAAA,MAAM,EAAG,MAAM;QACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;QAC3C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;SACpB,kBAAkB,EAAE,GAAG,CAAC,cAAc;IACtC,KAAA,QAAQ,EAAE,GAAtB;;IAGS,IAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;;IAKlB,CAAA,MAAA,SAAS,SAAS,KAAK,IAAA;IAC3B,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;;;;;;;IASnB,CAAA,MAAA,UAAU,SAAS,YAAY,IAAA;;;;;;;;;;IAwBK,CAAA,MAAA,aAAA,GAAA,KAAA,IAAA,SAAS,CAAC,KAAK,CAAA,CAAA;mCAyBZ,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC9KzF;IACO,MAAM,MAAM,GAAG,UAAU,CAAC;AACjC;IACO,MAAM,aAAa,GAAG;IAC7B,EAAE,GAAG,EAAE,cAAc;IACrB,EAAE,WAAW,EAAE,eAAe;IAC9B,EAAE,UAAU,EAAE,cAAc;IAC5B,EAAE,GAAG,EAAE,QAAQ;IACf,CAAC,CAAC;AACF;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;;;;;;;;;;;;;;wBC1BkB,aAAa,EAAA,MAAA,EAAA;;;;;;;;;;;;;;;;;;OAD/B,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC8EG,GAAA,QAAA,CAAA,QAAA,EAAA,OAAA,EAAA,MAAM,CAAC,UAAU,CAAA,CAAA;IAChB,GAAA,QAAA,CAAA,QAAA,EAAA,QAAA,EAAA,MAAM,CAAC,WAAW,CAAA,CAAA;;;;;;;;OAH3B,UAIS,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAnGJ,MAAM,CAAA;;;IAEL,CAAA,IAAA,MAAM,GAAG,KAAK,CAAA;;;;;IAIZ,CAAA,MAAA,GAAG,OAAO,KAAK,EAAA,CAAA;;KACrB,GAAG,CAAC,GAAG,GAAG,qBAAqB,CAAA;;IAC/B,CAAA,GAAG,CAAC,MAAM,GAAA,MAAA;IACR,EAAA,MAAM,GAAG,IAAI,CAAA;;;;;KAef,OAAO,CAAA,MAAA;;IAID,EAAA,MAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAA,CAAA;;;IAEhC,EAAA,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAA;;IAC7B,EAAA,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAA;;;;;;;IAU3B,EAAA,IAAA,OAAO,GAAI,CAAA,MAAM,CAAC,MAAM,GAAI,GAAG,CAAC,MAAM,GAAG,UAAU,IAAI,YAAY,GAAG,CAAC,KAAO,YAAY,CAAA;;;;;;UAiB1F,MAAM,GAAA,EAAK,OAAO,GAAG,GAAG,CAAA,CAAA;;UACxB,MAAM,GAAA,EAAK,OAAO,GAAG,GAAG,CAAA,CAAA;IACxB,EAAA,IAAA,CAAC,GAAG,MAAM,CAAA;IACV,EAAA,IAAA,CAAC,GAAG,MAAM,CAAA;UAEV,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAA,CAAA;;;IAE/B,EAAA,SAAA,IAAI,CAAC,CAAC,EAAA;;IAEX,GAAA,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAA,CAAA;;;OAE/C,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAA,CAAA;;;;;;;;;;IAUzB,GAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAA,EAAA;IACd,IAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAA,EAAA;;SAEvB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAI,CAAC,GAAG,OAAO,EAAG,CAAC,GAAI,CAAC,GAAG,OAAO,EAAG,GAAG,CAAC,KAAK,GAAG,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAA,CAAA;;;;;;IAO/G,GAAA,oBAAoB,CAAC,KAAK,CAAA,CAAA;;;;;;;;;;;;OAOjB,MAAM,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;KAlFb,UAAU,GAAG,EAAE,CAAA;KACf,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAA,CAAA;KAClD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCqChD,UAAgC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;qDAAjB,GAAK,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHpB,UAAuD,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OACvD,UAAkC,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;8CAAnB,GAAM,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAFlB,GAAI,CAAA,CAAA,CAAA,aAAI,GAAI,CAAA,CAAA,CAAA,CAAC,QAAQ,EAAA,OAAAA,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJ9B,UAeQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;OAdN,UAAmB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAQK,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;;;OACL,UAGI,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;OAFF,UAAoB,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;;OACpB,UAAqB,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAxDnB,IAAI,CAAA;;KAET,OAAO,CAAA,YAAA;sBACJ,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,IAAI,IAAK,IAAI,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;MAIzB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;;MACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,CAAA;;;;;;;;;;UAUd,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,EAAA;OACpD,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAA,CAAA;;;;WAMlF,KAAK,GAAA,YAAA;IACT,EAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,YAAA,CAAA,CAAA;MACrF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;;;;;WAK/B,MAAM,GAAA,YAAA;IACN,EAAA,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CACpE,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAE,MAAM,EAAA,CAAA,CAAA;IAElB,EAAA,YAAA,CAAA,CAAA,EAAA,IAAI,GAAG,SAAS,CAAA,CAAA;;;;;;;;;IAWS,CAAA,MAAA,aAAA,GAAA,MAAA,IAAI,CAAC,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCUxC,UAA6B,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAPxB,GAAS,CAAA,CAAA,CAAA,IAAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;iEALJ,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;;;;;;;;;;;OAAnB,UAA+F,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;OAC/F,UAGM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAFJ,UAA0E,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;yCAA7C,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA;;OACnC,UAAkC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;mEAFJ,GAAU,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;4FADhC,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA;;;;8DAEY,GAAM,CAAA,CAAA,CAAA,EAAA;0CAAN,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA;;;yBAGhC,GAAS,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAGT,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;OADZ,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;kEADF,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAXd,UAAoB,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCADd,GAAc,CAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;OAHxB,UAqBM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApBJ,UAAmB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAA8B,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAzC1B,SAAS,CAAA;IACT,CAAA,IAAA,MAAM,GAAG,EAAE,CAAA;IACX,CAAA,IAAA,SAAS,GAAG,EAAE,CAAA;;WACZ,cAAc,GAAA,CAAA,YAAA;IACZ,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,+BAExE,MAAM,EAAE,MAAM,EAEf,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACF,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,GAAG,CAAA,CAAA;;;;WAIb,UAAU,GAAA,YAAA;IACR,EAAA,MAAA,QAAQ,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,sBAAA,CAAA,EAAA;IAEvF,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EACL,cAAc,EAAE,kBAAkB,EAAA;IAEpC,GAAA,IAAI,EAAG,IAAI,CAAC,SAAS,CACnB,EAAA,WAAW,EAAG,MAAM,EAAA,CAAA;;;UAGtB,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA;IACzB,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,EAAE,CAAA,CAAA;uBACX,SAAS,GAAA,CAAA,UAAA,CAAA,CAAA,CAAA;;;UAEP,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA;IACzB,GAAA,IAAI,CAAC,UAAU,CAAA,CAAA;OACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAA;;;;;;;;;;;MAgBH,MAAM,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OClDzC,UAGK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAFH,UAAyC,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;OACzC,UAAwD,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA9B,CAAA,MAAA,aAAA,GAAA,MAAA,OAAO,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;ICuDvC,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrB,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3B;;ICbA,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;IACrG,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAC1C,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IACxE,IAAI,MAAM,EAAE,GAAG,cAAc,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO;IACX,QAAQ,KAAK;IACb,QAAQ,QAAQ;IAChB,QAAQ,MAAM;IACd,QAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AACxB,cAAc,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrE,YAAY,EAAE,cAAc,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,KAAK,CAAC;IACN;;IC/DO,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC;IACnC;IAEO,MAAM,CAAC,GAAG,WAAW,CAAC;IACtB,MAAM,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,EAAE,GAAC,CAAC,CAAC;IAChB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAC,IAAI,CAAC,CAAC;IAIrD,MAAM,eAAe,GAAG,IAAI,CAAC;IAGpC;IACO,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IAIlD;;ICzBO,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;IAE1C;IACO,MAAM,qBAAqB,GAAG,EAAE,CAAC;IAEjC,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAE9B,MAAM,cAAc,GAAG,kBAAkB,GAAC,IAAI,CAAC;IAE/C,MAAM,iBAAiB,GAAG,GAAG,CAAC;;ICfrC,IAAY,UAuBX,CAAA;IAvBD,CAAA,UAAY,UAAU,EAAA;;IAErB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;IACd,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;IACnB,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;;IAGL,IAAA,UAAA,CAAA,UAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAqB,CAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;;IAGX,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,IAAA,UAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;IACjB,IAAA,UAAA,CAAA,UAAA,CAAA,sBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,sBAAoB,CAAA;IACpB,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IAEZ,CAAC,EAvBW,UAAU,KAAV,UAAU,GAuBrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,SAIX,CAAA;IAJD,CAAA,UAAY,SAAS,EAAA;IACpB,IAAA,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,IAAA,SAAA,CAAA,SAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM,CAAA;IACN,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACL,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,UAGX,CAAA;IAHD,CAAA,UAAY,UAAU,EAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACN,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,UAGX,CAAA;IAHD,CAAA,UAAY,UAAU,EAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACV,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,YAKX,CAAA;IALD,CAAA,UAAY,YAAY,EAAA;;IAEvB,IAAA,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAc,CAAA;IACd,IAAA,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,YAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAoB,CAAA;IACrB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA;;IC1CM,IAAIgB,MAAc,CAAC;IACnB,IAAI,EAAwB,CAAC;IAC7B,IAAI,YAAY,GAAoBC,YAAe,CAAC,QAAQ,CAAC;IAE9D,SAAU,OAAO,CAAC,KAAe,EAAA;QACtCD,MAAI,GAAG,KAAK,CAAC;IACd,CAAC;IAEK,SAAU,KAAK,CAAC,KAA2B,EAAA;QAChD,EAAE,GAAG,KAAK,CAAC;IACZ,CAAC;IAEK,SAAU,eAAe,CAAC,KAAsB,EAAA;QACrD,YAAY,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,IAAI,aAAyB,CAAC;IAE/B,SAAU,gBAAgB,CAAC,KAAiB,EAAA;QACjD,aAAa,GAAG,KAAK,CAAC;IACvB;;IC+DA;UACa,WAAW,CAAA;IAEvB,IAAA,WAAA,CAAY,OAAsB,CAAC,EAAA;IAClC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACD,CAAA;IAEK,MAAO,cAAe,SAAQ,WAAW,CAAA;IAE9C,IAAA,WAAA,CAAY,IAAmB,EAAA;IAC9B,QAAA,KAAK,CAACE,UAAa,CAAC,cAAc,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACD,CAAA;IAEK,MAAO,oBAAqB,SAAQ,cAAc,CAAA;QAQvD,WAAY,CAAA,YAA6B,EAAE,KAAa,EAAE,QAAgB,EAAE,YAAA,GAAwB,KAAK,EAAE,iBAA0B,EAAE,eAA0B,EAAA;IAChK,QAAA,KAAK,CAACC,UAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,QAAA,IAAI,eAAe,EAAE;IACpB,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACvC,SAAA;IACD,QAAA,IAAI,iBAAiB,EAAE;IACtB,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC3C,SAAA;SACD;IACD,CAAA;IAEK,MAAO,uBAAwB,SAAQ,cAAc,CAAA;IAE1D,IAAA,WAAA,CAAY,aAAqB,EAAA;IAChC,QAAA,KAAK,CAACA,UAAa,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACnC;IACD,CAAA;IAEK,MAAO,UAAW,SAAQ,WAAW,CAAA;QAG1C,WAAY,CAAA,KAAA,GAAsBC,SAAY,CAAC,OAAO,EAAE,KAAa,CAAC,EAAA;IACrE,QAAA,KAAK,CAACF,UAAa,CAAC,WAAW,CAAC,CAAC;IACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SACb;IACD;;IC1ID;;IAEE;IACI,SAAU,KAAK,CAAC,OAAe,EAAA;IAEpC,IAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3BF,MAAI,CAAC,KAAK,EAAE,CAAC;IACb,IAAA,MAAM,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACjC,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACK,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACtC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,WAAW,GAAA;QAE1B,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACtC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,mBAAmB,GAAA;QAElC,MAAM,IAAI,GAAG,eAAe,CAAC;IAC7B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,UAAU,GAAA;QAEzB,MAAM,IAAI,GAAG,aAAa,CAAC;IAC3B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAElB,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;IAC5B,QAAA,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC9B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAGD,CAAG,GAAC,KAAK,CAAC;IAC1B,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;SACxB,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;IAGD;;IAEE;aACc,GAAG,GAAA;IAElB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACA,CAAG,GAAC,KAAK,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACxC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IACvB,CAAC;aAEe,IAAI,GAAA;IAEnB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,KAAK,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACxC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;IACxB,CAAC;IAEK,SAAU,OAAO,CAAC,UAAyB,EAAA;IAEhD,IAAA,IAAI,UAAU,KAAKC,UAAa,CAAC,IAAI,EAAE;IACtC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACF,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,KAAA;IACI,SAAA;IACJ,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,KAAA;QACD,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC;SAC9B,EAAE,IAAI,CAAC,CAAC;QACT,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC;SAChC,EAAE,IAAI,CAAC,CAAC;IACV;;ICxFA;IACO,MAAM,YAAY,GAAuB;QAC/C,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,GAAC,CAAC,GAAC,MAAM,CAAC;QAC3G,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,GAAC,CAAC,GAAC,MAAM,CAAC;KAC3G,CAAC;IACK,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,uBAAuB,CAAC,CAAC;IAEjI,SAAU,SAAS,CAAC,KAAa,EAAA;IAEtC,IAAA,IAAI,QAAiB,CAAC;QACtB,IAAI,KAAK,KAAK,IAAI,EAAE;YACnB,QAAQ,GAAG,KAAK,CAAC;IACjB,KAAA;IACI,SAAA;YACJ,QAAQ,GAAG,IAAI,CAAC;IAChB,KAAA;IAED,IAAA,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;IAC9B,QAAA,KAAK,CAAC,MAAM,GAAGE,iBAAmB,CAAC;IACnC,QAAA,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,KAAC,CAAC,CAAC;IACH,IAAA,WAAW,CAAC,MAAM,GAAGA,iBAAmB,CAAC;IACzC,IAAA,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC9B;;aCvBgB,MAAM,CAAC,MAAc,CAAC,EAAE,MAAc,CAAC,EAAA;IACtD,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAC1C;;aCFgB,SAAS,CAAC,KAAa,EAAE,QAAkC,EAAE,WAAwB,EAAA;IAEpG,IAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,GAAG,CAAC,EAAE;IACd,QAAA,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChB,SAAA;IACD,QAAA,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,KAAA;IACI,SAAA,IAAI,WAAW,EAAE;IACrB,QAAA,WAAW,EAAE,CAAC;IACd,KAAA;IACF;;UCda,MAAM,CAAA;IAGlB,IAAA,WAAA,CAAY,CAAY,GAAA,CAAC,EAAE,CAAA,GAAY,CAAC,EAAA;IACvC,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACX;QACD,MAAM,CAAC,CAAS,EAAE,CAAS,EAAA;IAC1B,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACX;QACD,UAAU,GAAA;IACT,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,QAAA,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAAC,mBAAmB,CAAC,CAAC;SAC1E;IACD,CAAA;IAEK,MAAO,aAAc,SAAQ,MAAM,CAAA;IAGxC,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;IAuBE;;IClCK,MAAM,SAAS,GAAG;IACxB,IAAA,UAAU,EAAE,KAAK;IACjB,IAAA,UAAU,EAAE,KAAK;KACjB,CAAA;aAEe,cAAc,GAAA;IAC7B,IAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;IAC7B,IAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,MAAM,UAAU,CAAA;IAAhB,IAAA,WAAA,GAAA;YACC,IAAE,CAAA,EAAA,GAAG,EAAE,CAAC;SAKR;IAAA,CAAA;IAED,MAAM,mBAAmB,CAAA;IAKxB,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,GAAG,eAAwB,GAAG,GAAG,GAAG,MAAwB,GAAG,OAAO,CAAC;IACrF,IAAI,MAAiB,CAAC;IACtB,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAG7C,SAAA,aAAa,CAAC,OAAwB,EAAE,KAAa,EAAE,QAAgB,EAAE,YAAY,GAAG,KAAK,EAAE,iBAA0B,EAAE,eAA0B,EAAA;QAEpK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,IAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,OAAO,GAAG,YAAY,GAAG,KAAK,GAAG,eAAe,GAAG,QAAQ,GAAG,oBAAoB,GAAI,YAAY;cAC9I,iBAAiB,GAAG,iBAAiB,CAAC,CAAA;QACzC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;IACzC,QAAA,IAAI,YAAY,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIC,oBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAE,CAAC,CAAC;IACvI,SAAA;IACI,aAAA;gBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIA,oBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAE,CAAC,CAAC;IACrF,SAAA;IACF,KAAC,CAAC,CAAC;;IAEH,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACtD,CAAC;IAMD,SAAS,aAAa,CAAkB,KAAmB,EAAA;QAC1D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAKP,UAAa,CAAC,KAAK,EAAE;IACtC,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,QAAAQ,KAAS,CAAE,IAAsB,CAAC,OAAO,CAAC,CAAC;IAC3C,KAAA;IACF,CAAC;IAED,SAAS,gBAAgB,CAAkB,KAAmB,EAAA;QAE7D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKR,UAAa,CAAC,QAAQ;IAC1B,YAAA,UAAU,CAAC,EAAE,GAAsB,IAAK,CAAC,EAAE,CAAC;gBAC5C,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,qBAAqB;gBACvCS,WAAe,EAAE,CAAC;gBAClB,MAAM;IACP,QAAA,KAAKT,UAAa,CAAC,mBAAmB;IACrC,YAAA,UAAU,CAAC,IAAI,GAAiC,IAAK,CAAC,IAAI,CAAC;gBAC3D,IAAI,UAAU,CAAC,IAAI,KAAKK,UAAa,CAAC,IAAI,EAC1C;IACC,gBAAA,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC;IAClC,gBAAA,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC;IACrC,aAAA;qBACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAChD;IACC,gBAAA,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC;IACnC,gBAAA,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC;IACpC,aAAA;gBACD,UAAU,CAAC,eAAe,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrG,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIK,WAAc,CAACV,UAAa,CAAC,iBAAiB,CAAC,CAAE,CAAC,CAAC;gBACnFW,mBAAuB,EAAE,CAAC;gBAC1B,MAAM;IACP,QAAA,KAAKX,UAAa,CAAC,UAAU;IAC5B,YAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACxD,YAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,YAAA,aAAa,EAAE,CAAC;gBAChB,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,UAAU;IAC5B,YAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5B,YAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBACxDY,UAAc,EAAE,CAAC;gBACjB,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,cAAc,CAAkB,KAAmB,EAAA;QAE3D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKZ,UAAa,CAAC,UAAU;;gBAE5B,UAAU,CAAC,IAA0B,CAAC,CAAC;gBACvC,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,WAAW;gBAC7B,WAAW,CAAC,IAA2B,CAAC,CAAC;gBACzC,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,QAAQ;gBAC1B,QAAQ,CAAC,IAAwB,CAAC,CAAC;gBACnC,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,UAAU,CAAC,IAAwB,EAAA;IAE3C,IAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1B,IAAA,IAAI,YAAY,GAAGD,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;IACjC,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,KAAC,CAAC,CAAC;IACH;;;;;IAKM;QAEN,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1F,IAAI,UAAU,CAAC,IAAI,KAAKM,UAAa,CAAC,IAAI,EAAE;YAC3C,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACzE,KAAA;aACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAAE;YACjD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAA;;IAGD,IAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,IAAI,EAAE;IAC3C,QAAA,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjF,KAAA;aACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAAE;IACjD,QAAA,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChF,KAAA;IAED,IAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,MAAM,CACnC,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACxD,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACxD,CAAC;QAEF,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;IACpF,QAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAC/D,KAAA;;IAGD,IAAA,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;IAG9B,IAAA,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC;IAC7C,WAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,EACjD;YACC,OAAO,CAAC,GAAG,CACV,CAAA;uBACoB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;AACjB,qBAAA,EAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AACvB,qBAAA,EAAA,aAAa,CAAC,CAAC,CAAE,CAAA,CACpC,CAAC;IACH,KAAA;IACF,CAAC;IAED,SAAS,WAAW,CAAC,IAAyB,EAAA;;IAG7C,IAAA,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;YACpF,WAAW,CAAC,IAAI,EAAE,CAAC;IACnB,KAAA;IACI,SAAA,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;YACxF,WAAW,CAAC,IAAI,EAAE,CAAC;IACnB,KAAA;QACD,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,SAAS,QAAQ,CAAC,IAAsB,EAAA;IAEvC,IAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,EAAE;YACpCQ,GAAO,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,OAAO,EAAE;IACjB,YAAAC,OAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAA;IACD,KAAA;IACI,SAAA;YACJC,IAAQ,EAAE,CAAC;IACX,KAAA;IACF,CAAC;IAED;IAEM,SAAU,sBAAsB,CAAC,aAAqB,EAAA;QAE3D,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;IACzC,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIC,uBAA0B,CAAC,aAAa,CAAC,CAAE,CAAC,CAAC;IAC9E,KAAC,CAAC,CAAC;;IAEH,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QAE9D,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpG,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAExG,CAAC;IAEK,SAAU,yBAAyB,CAAkB,KAAmB,EAAA;QAE7E,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAKhB,UAAa,CAAC,UAAU,EAC1C;IACC,QAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IACjE,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIU,WAAc,CAACV,UAAa,CAAC,oBAAoB,CAAC,CAAE,CAAC,CAAC;IACtF,QAAA,aAAa,EAAE,CAAC;IAChB,KAAA;IACF,CAAC;IAED,SAAS,uBAAuB,CAAkB,KAAmB,EAAA;QAEpE,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKA,UAAa,CAAC,UAAU;gBAC5B,mBAAmB,CAAC,IAA0B,CAAC,CAAC;gBAChD,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,WAAW;gBAC7B,oBAAoB,CAAC,IAA2B,CAAC,CAAC;gBAClD,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,QAAQ;gBAC1B,iBAAiB,CAAyB,CAAC,CAAC;gBAC5C,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,mBAAmB,CAAC,IAAwB,EAAA;IAEpD,IAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEnC,IAAA,IAAI,YAAY,GAAGD,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;IACjC,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,KAAC,CAAC,CAAC;;IAGH,IAAA,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,EACpD;IACC,QAAA,IAAI,OAAsB,CAAC;IAC3B,QAAA,IAAI,MAAM,KAAK,EAAE,CAAC,UAAU,EAAE;IAC7B,YAAA,OAAO,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;IAChD,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;IACjD,SAAA;IAED,QAAA,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,QAAA,IAAI,MAAM,KAAK,EAAE,CAAC,UAAU,EAAE;IAC7B,YAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjD,SAAA;YAED,MAAM,CAAC,GAAG,GAAG,IAAI,MAAM,CACtB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EACxB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CACxB,CAAC;YAEF,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC1D,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IACrC,SAAA;IACD,KAAA;IACF,CAAC;IAED,SAAS,oBAAoB,CAAC,IAAyB,EAAA;IAEtD,IAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAsB,EAAA;IAEhD,IAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,IAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;;IAEf;;;IAGI;IACL;;UCrUa,YAAY,CAAA;QAIxB,WAAY,CAAA,UAAyB,EAAE,SAAiB,EAAA;IACvD,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAC9B,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACxB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC3B;IACD;;ICLM,IAAI,WAAW,GAAG,KAAK,CAAC;IAI/B,IAAIkB,YAAkB,CAAC;IAEvB,MAAM,UAAU,GAAkB,IAAIC,UAAa,EAAE,CAAC;IACtD,MAAM,eAAe,GAAmB,EAAE,CAAC;IAE3C;IACA;;;IAGI;aAEY,WAAW,GAAA;IAE1B;;IAEiD;IAEjD,IAAAD,YAAU,GAAGE,cAAgB,CAAC;;IAG9B,IAAA,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,UAAU,CAAC,KAAK,GAAGjB,SAAY,CAAC,OAAO,CAAC;IAExC,IAAA,MAAM,IAAI,GAAGJ,MAAI,CAAC,IAAI,CAAC;IACvB,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EACrB;YACC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAC3B;gBACC,WAAW,GAAG,CAAC,WAAW,CAAC;IAC3B,YAAAA,MAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpB,SAAA;IACD,QAAA,eAAe,CAACmB,YAAU,EAAE,IAAI,CAAC,CAAC;IAClC,KAAA;IAED,IAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;;QAED,eAAe,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,UAAU,EAAEA,YAAU,CAAC,CAAC,CAAC;;QAG/D,IAAI,UAAU,CAAC,KAAK,KAAKf,SAAY,CAAC,OAAO,EAAE;;;IAG9C,QAAA,oBAAoB,CAACe,YAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,KAAA;IACF,CAAC;IAED,SAAS,eAAe,CAAC,KAAa,EAAE,IAAc,EAAA;QAErD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAC5E;YACC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC/E,UAAU,CAAC,KAAK,GAAGf,SAAY,CAAC,EAAE,CAAC;IACnC,SAAA;IACD,KAAA;aACI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;YACpF,UAAU,CAAC,KAAK,GAAGA,SAAY,CAAC,IAAI,CAAC;IACrC,KAAA;IACF,CAAC;IAOD,SAAS,oBAAoB,CAAC,KAAa,EAAE,KAAmB,EAAA;;IAG/D,IAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAA,IAAI,KAAK,KAAKA,SAAY,CAAC,EAAE,EAAE;IAC9B,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClB,KAAA;IACI,SAAA,IAAI,KAAK,KAAKA,SAAY,CAAC,IAAI,EAAE;IACrC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,KAAA;IACD,IAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEK,SAAU,WAAW,CAAC,WAAmB,EAAA;;QAG9C,IAAI,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,KAAmB,KAAI;IACzD,QAAA,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW,EAAE;IAC7B,YAAA,OAAO,IAAI,CAAC;IACZ,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;IACd,KAAC,CAAC,CAAC;;QAGH,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC;;IAG/B,IAAA,eAAe,CAAC,OAAO,CAAC,CAAC,KAAmB,KAAI;YAC/C,IAAI,KAAK,CAAC,KAAK,KAAKA,SAAY,CAAC,OAAO,EAAE;gBACzC,oBAAoB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,SAAA;IACF,KAAC,CAAC,CAAC;IACJ;;ICzGgB,SAAA,cAAc,CAAC,KAAa,EAAE,EAAkB,EAAA;IAE/D,IAAA,MAAM,OAAO,GAAoB,EAAE,CAAC,OAAO,CAAC;IAC5C,IAAA,MAAM,UAAU,GAAoB,EAAE,CAAC,UAAU,CAAC;IAClD,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAIkB,gBAAkB,EAAE;IAC9D,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpB,KAAA;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAIhB,CAAG,GAACiB,QAAU,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAIjB,CAAG,GAACgB,gBAAkB,EAAE;IACrF,QAAA,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvB,KAAA;IACD,IAAA,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/D,IAAA,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACnE;;ICNA,IAAI,UAAkB,CAAC;aAEP,QAAQ,GAAA;IAEvB;;IAEiD;IAEjD,IAAA,UAAU,GAAGD,cAAgB,CAAC;;;;QAK9B,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YACpC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IACjF,KAAA;;QAGD,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,KAAC,CAAC,CAAC;IAEH,IAAA,IAAI,YAAY,GAAGpB,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAA;IACF,CAAC;aAEe,iBAAiB,GAAA;IAEhC,IAAA,UAAU,GAAGoB,cAAgB,CAAC;;QAG9B,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YAC9B,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACtF,KAAA;QACD,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YAC/B,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IACxF,KAAA;;QAGD,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,KAAC,CAAC,CAAC;IAEH,IAAA,IAAI,YAAY,GAAGpB,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAA;IACF,CAAC;IAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,MAAoB,EAAE,OAAsB,EAAA;;IAGvF,IAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1D,IAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IAC7C,YAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAClD;IACC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IACzB,KAAA;IACF;;aCnEgB,QAAQ,GAAA;QAEvBD,MAAI,CAAC,KAAK,EAAE,CAAC;IAEb,IAAA,IAAI,WAAW,EAAE;IAChB,QAAA,QAAQ,EAAE,CAAC;IACX,KAAA;IAED,IAAA,UAAU,EAAE,CAAC;IAEb,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAElB,IAAA,WAAW,EAAE,CAAC;IACf,CAAC;IAED,SAAS,WAAW,GAAA;IAEnB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,KAAC,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,UAAU,GAAA;IAElB,IAAA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACpB,IAAA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACpB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,SAAS,QAAQ,GAAA;IAEhB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAEtB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACvB;;UC/Ca,WAAW,CAAA;IAAxB,IAAA,WAAA,GAAA;YACC,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;YACd,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;YACpB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;YACrB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;YAC3B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;YACxB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;YACvB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;SAUvB;QATA,KAAK,GAAA;IACJ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IACzB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAChC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC5B;IACD;;UCfY,QAAQ,CAAA;IAOpB,IAAA,WAAA,CAAY,SAAiB,EAAA;YAN7B,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;YACpB,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAC;YAChC,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;YAC7B,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;YAI5B,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACpD,QAAA,IAAI,MAAM,IAAI,MAAM,YAAY,iBAAiB,EAAE;IAClD,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACtD,OAAO;IACP,SAAA;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAA6B,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAGwB,WAAa,CAAC;IAClC,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAGA,WAAa,GAAGC,WAAa,CAAC;SACnD;IACD,IAAA,MAAM,CAAC,GAAW,EAAA;IACjB,QAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;IACV,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACrB;IACD,IAAA,SAAS,CAAC,GAAW,EAAA;IACpB,QAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvB,SAAA;SACD;QACD,KAAK,GAAA;YACJ,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAChE;IACD;;ICnCD;UACa,QAAQ,CAAA;QAOpB,WAAY,CAAA,GAAkB,EAAE,IAAY,EAC1C,GAA6B,EAAE,KAAa,EAAE,IAAA,GAAe,QAAQ,EAAA;YAFvE,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;;IAKjB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;QACD,MAAM,GAAA;IACL,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACrD;QACD,KAAK,GAAA;;;IAGJ,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;IAKjD,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;;SAG1F;IACD,CAAA;IAEK,MAAO,gBAAiB,SAAQ,QAAQ,CAAA;QAE7C,WAAY,CAAA,GAAkB,EAAE,IAAY,EAC1C,GAA6B,EAAE,KAAa,EAAE,IAAa,EAAA;YAE5D,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAJ5B,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;SAK1B;IACD,IAAA,IAAI,KAAK,GAAA;YACR,OAAO,IAAI,CAAC,MAAM,CAAC;SACnB;QACD,IAAI,KAAK,CAAC,CAAS,EAAA;IAClB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;SACzB;IACD;;UClDY,SAAS,CAAA;IAIrB,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAA;IAC5D,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACrB;IACD,IAAA,SAAS,CAAC,QAAmB,EAAA;IAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5C,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACtD,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IACxD,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW;oBACzB,OAAO,GAAG,cAAc,CAAC;oBACzB,SAAS,GAAG,YAAY,CAAC;IAC1B,gBAAC,QAAQ,GAAG,aAAa,CAAC,EAAE;IAC9B,YAAA,OAAO,KAAK,CAAC;IACb,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,IAAI,CAAC;IACZ,SAAA;SACD;IACD,CAAA;IAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;IAI7C,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAA;IAC/E,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAJ3B,IAAG,CAAA,GAAA,GAAW,IAAI,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IAK7B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SACvB;IACD,IAAA,IAAI,CAAC,KAAa,EAAA;;;;IAIjB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAC9C;QACD,cAAc,CAAC,KAAa,EAAE,WAAwB,EAAA;IACrD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAC7C;QACS,mBAAmB,CAAC,KAAa,EAAE,WAAwB,EAAA;IACpE,QAAA,IAAI,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;IAC3C,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;IAClB,SAAA;SACD;IACD,CAAA;IAEK,MAAO,MAAO,SAAQ,eAAe,CAAA;IAC1C,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAA;YAC/E,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SACrC;QACD,cAAc,CAAC,KAAa,EAAE,WAAwB,EAAA;;IAErD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;;SAE7C;IACD,CAAA;IAEK,MAAO,IAAK,SAAQ,eAAe,CAAA;IAGxC,IAAA,WAAA,CAAY,GAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,aAAqB,EAAA;YACrF,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAFnC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;IAG3B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACnC;QACD,aAAa,CAAC,KAAa,EAAE,WAAwB,EAAA;IACpD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpD,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EACX;gBACC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,SAAA;SACD;IACD,IAAA,MAAM,CAAC,QAAoB,EAAA;IAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC3B;IACS,IAAA,WAAW,CAAC,QAAoB,EAAA;IACzC;IACuD;YACvD,IAAI,QAAQ,YAAY,MAAM,EAAE;IAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC7B,SAAA;IACI,aAAA;gBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;IACnB,SAAA;SACD;QACS,WAAW,GAAA;IACpB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7B;IACS,IAAA,aAAa,CAAC,MAAc,EAAA;IACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;SAC/B;IACS,IAAA,iBAAiB,CAAC,MAAc,EAAA;IACzC,QAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;YAEjC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAExB,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,QAAA,MAAM,WAAW,GAAG,iBAAiB,GAAG,EAAE,CAAC;IAC3C,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAC,CAAC,CAAC;IACnC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;IAE5C,QAAA,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACjC,QAAA,MAAM,gBAAgB,GAAG,UAAU,GAAG,IAAI,CAAC;YAC3C,IAAI,MAAM,GAAG,gBAAgB,IAAI,MAAM,GAAG,CAAC,gBAAgB,EAAE;gBAC5D,MAAM,GAAG,CAAC,CAAC;IACX,SAAA;iBACI,IAAI,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACnC,SAAA;iBACI,IAAI,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACnC,SAAA;YAED,IAAI,CAAC,GAAG,MAAM,IAAI,UAAU,GAAG,gBAAgB,CAAC,GAAG,WAAW,CAAC;YAE/D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;SAMtB;IACD;;ICtID,SAAS,eAAe,GAAA;QACvB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,SAAS,cAAc,CAAwB,GAAmB,EAAA;IACjE,IAAA,IAAI,GAAG;YACN,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;YAE1D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;QAK7C,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAC3D,GAA6B,EAAE,KAAa,EAAA;IAE7C,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,qBAAsB,SAAQ,eAAe,CAAA;QAKzD,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAC9E,GAA6B,EAAE,KAAa,EAAA;YAE7C,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,YAAa,SAAQ,MAAM,CAAA;QAKvC,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAC9E,GAA6B,EAAE,KAAa,EAAA;YAE7C,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,UAAW,SAAQ,IAAI,CAAA;QAKnC,WAAY,CAAA,GAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,aAAqB,EACrF,GAA6B,EAAE,KAAa,EAAA;YAE5C,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,IAAA,MAAM,CAAC,QAAoB,EAAA;IAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,QAAA,YAAY,CAAE,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,CAAA,QAAA,EAAW,CAAC,CAAE,CAAA,CAAC,CAAC;SAC5B;IACD,CAAA;IAED,SAAS,UAAU,GAAA;QAClB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,IAAA,IAAI,GAAG,GAAkB,IAAI,aAAa,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAA,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,EAC5B;;;;;YAMC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnB,QAAA,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YAE5C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvE,CAAC,IAAI,CAAC,CAAC;IACP,KAAA;IACF,CAAC;IAEK,MAAO,IAAK,SAAQ,eAAe,CAAA;QAKxC,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAC3D,GAA6B,EAAE,KAAa,EAAE,SAAkB,EAAA;YAEjE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAPvC,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;IAQrB,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IACzB,QAAA,IAAI,SAAS;IACZ,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;;IAG3C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;;;;SAKrD;IACD;;UC3HY,cAAc,CAAA;IAM1B,IAAA,WAAA,CAAY,OAAwB,EAAA;YADpC,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;IAGrB,QAAA,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC;;IAG9B,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,GAACC,EAAI,EAAEC,KAAO,GAACC,EAAI,GAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,EAAEF,EAAI,EAAEE,EAAI,EAAEC,WAAa,CAAC,CAAC;YAC7D,GAAG,CAAC,MAAM,CAACxB,CAAG,GAACqB,EAAI,GAACA,EAAI,EAAEC,KAAO,GAACC,EAAI,GAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,GAAG,EAAEF,EAAI,EAAEE,EAAI,EAAEC,WAAa,CAAC,CAAC;;YAG9D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,QAAA,IAAI,OAAO,GAAG5B,YAAe,CAAC,UAAU,EAAE;IACzC,YAAA,UAAU,GAAG6B,eAAiB,CAAC;IAC/B,SAAA;IACD,QAAA,GAAG,CAAC,MAAM,CAAC,CAACC,QAAU,EAAE,CAACA,QAAU,CAAC,CAAC;IACrC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAEA,QAAU,EAAEC,SAAW,EAAEC,iBAAmB,CAAC,CAAC,CAAA;IAC/E,SAAA;YACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;IAC9B,YAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACf,YAAA,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE;IACnB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB,aAAA;gBAED,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5B,YAAA,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE;IACnB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB,aAAA;gBAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAClC,SAAC,CAAC,CAAC;;IAGH,QAAA,IAAI,OAAO,GAAGhC,YAAe,CAAC,WAAW,EAAE;IAC1C,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEI,CAAG,EAAEkB,QAAU,EAAEW,eAAiB,CAAC,CAAC;gBAC1D,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE5B,CAAG,GAACiB,QAAU,CAAC,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAElB,CAAG,EAAEkB,QAAU,EAAEW,eAAiB,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,SAAA;IACI,aAAA;IACJ,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE7B,CAAG,EAAEkB,QAAU,CAAC,CAAC;IACnD,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEjB,CAAG,GAACiB,QAAU,CAAC,CAAC;IAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,GAAG,EAAElB,CAAG,EAAEkB,QAAU,CAAC,CAAC;IACtD,SAAA;SACD;IACD;;ICrDD,MAAM,gCAAiC,SAAQ,cAAc,CAAA;QAM5D,WAAY,CAAA,OAAwB,EAAE,GAA6B,EAAA;YAElE,KAAK,CAAC,OAAO,CAAC,CAAC;;IAGf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAClC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACzD,GAAG,EAAE,OAAO,CAAC,CAAC;YACd,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CACnC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACzD,GAAG,EAAE,OAAO,CAAC,CAAC;;YAGd,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EACxF,GAAG,EAAE,OAAO,CAAC,CACZ,CAAC;IACH,SAAC,CAAC,CAAC;IACH,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;;IAG5B,QAAA,IAAI,OAAO,GAAGtB,YAAe,CAAC,WAAW,EACzC;IACC,YAAA,MAAM,MAAM,GAAoB,IAAI,CAAC,OAAO,CAAC;IAC7C,YAAA,MAAM,MAAM,GAAoB,IAAI,CAAC,UAAU,CAAC;gBAEhD,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAClG,GAAG,EAAE,MAAM,CAAC,CAAC;IACW,YAAA,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE7E,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACrG,GAAG,EAAE,MAAM,CAAC,CAAC;IACW,YAAA,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChF,SAAA;IAED,aAAA;IACC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;IAC5B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAC1E,GAAG,EAAE,MAAM,CAAC,CAAC;gBACb,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAC7E,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,SAAA;SACD;IACD,CAAA;IAEK,MAAO,oBAAqB,SAAQ,gCAAgC,CAAA;QAczE,WAAY,CAAA,OAAwB,EAAE,GAA6B,EAAA;IAElE,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpB,QAAA,IAAI,GAAG,GAAG,IAAI,aAAa,CAAC;;IAE5B,QAAA,GAAG,CAAC,MAAM,CAACkC,KAAO,GAACC,SAAW,GAAC,GAAG,EAAEA,SAAW,GAAC,GAAG,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAEA,SAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtE,QAAA,GAAG,CAAC,MAAM,CAACD,KAAO,GAACC,SAAW,GAAC,GAAG,EAAEA,SAAW,GAAC,GAAG,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAEA,SAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACvE,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;;YAG1B,GAAG,CAAC,MAAM,CAAC,CAAC,EAAET,KAAO,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACtB,CAAG,GAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACA,CAAG,GAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACA,CAAG,GAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;;IAGjE,QAAA,GAAG,CAAC,MAAM,CAAC8B,KAAO,GAACE,WAAa,GAAC,CAAC,EAAE,CAAC,GAACd,QAAU,CAAC,CAAC;IAClD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAEc,WAAa,EAAE/B,CAAG,GAACiB,QAAU,GAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;;YAGhF,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEI,KAAO,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEtB,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9E,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEhC,CAAG,GAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAED,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7E,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEhC,CAAG,GAACA,CAAG,GAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAED,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC7E,GAAG,CAAC,MAAM,CAACH,KAAO,EAAE,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEG,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9E,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEiC,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7E,QAAA,GAAG,CAAC,MAAM,CAACD,CAAG,GAACA,CAAG,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEiC,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;SAC7E;IACD;;ICtGK,SAAU,mBAAmB,CAAC,OAAoB,EAAA;IAEvD,IAAA,IAAI,YAAY,GAAGL,YAAe,CAAC,QAAQ,CAAC;IAE5C,IAAA,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE;IACjC,QAAA,YAAY,IAAIA,YAAe,CAAC,UAAU,CAAA;IAC1C,KAAA;IACD,IAAA,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE;IAClC,QAAA,YAAY,IAAIA,YAAe,CAAC,WAAW,CAAA;IAC3C,KAAA;IAED,IAAA,OAAO,YAAY,CAAC;IACrB,CAAC;aAEe,QAAQ,CAAC,YAA6B,EAAE,KAAa,EAAE,UAAkB,EAAA;QAExF,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9B,IAAA,OAAO,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,oBAAoB,CAAC,YAAY,EAAED,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;aAEe,WAAW,GAAA;IAE1B,IAAA,IAAIA,MAAI,EACR;IACC,QAAA,aAAa,CAACA,MAAI,CAAC,mBAAmB,CAAC,CAAC;IACxC,QAAA,aAAa,CAACA,MAAI,CAAC,gBAAgB,CAAC,CAAC;IACrC,QAAA,aAAa,CAACA,MAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,KAAA;IACD,IAAA,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;YAC1B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,KAAA;IACD,IAAA,cAAc,EAAE,CAAC;IAClB;;IC/BA,IAAI,sBAAuC,CAAC;IAC5C,IAAI,oBAAqC,CAAC;aAE1BrB,MAAI,CAAC,OAAoB,EAAE,UAAkB,EAAE,KAAa,EAAA;IAE3E,IAAA,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAElD,gBAAgB,CAAC4D,OAAK,CAAC,CAAC;QACxB,IAAI,OAAO,CAAC,kBAAkB,EAAE;IAC/B,QAAA,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACxH,KAAA;IACI,SAAA;YACJ,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9D,KAAA;IACF,CAAC;aAEeC,SAAO,GAAA;IAEtB,IAAA,WAAW,EAAE,CAAC;IACd,IAAA,IAAI,sBAAsB,EAAE;YAC3B,sBAAsB,CAAC,KAAK,EAAE,CAAC;YAC/B,sBAAsB,GAAG,IAAI,CAAC;IAC9B,KAAA;IACD,IAAA,IAAI,oBAAoB,EAAE;YACzB,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAC7B,oBAAoB,GAAG,IAAI,CAAC;IAC5B,KAAA;IACF,CAAC;IAED,SAASD,OAAK,GAAA;IAEb,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAClC,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;QACvC,SAAS,CAACmC,eAAiB,GAAC,IAAI,EAAE,CAAC,KAAa,KAAI;IACnD,QAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAG,EAAA,KAAK,EAAE,CAAC;IAC3B,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAClB,EAAE,qBAAqB,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,qBAAqB,GAAA;IAE7B,IAAA,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/C,IAAA,MAAM,CAAC,gBAAgB,CACtB,SAAS,EACT,CAAC,CAAC,KAAI,EAAGzC,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAC9B,EAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAC,CACvC,CAAC;IAEF,IAAA,oBAAoB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC7C,IAAA,MAAM,CAAC,gBAAgB,CACtB,OAAO,EACP,CAAC,CAAC,KAAI,EAAGA,MAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,EAChC,EAAC,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAC,CACrC,CAAC;IAEF,IAAA0C,QAAM,EAAE,CAAC;IACV,CAAC;IAED,SAASA,QAAM,GAAA;IAEd,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,IAAA1C,MAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE2C,qBAAuB,CAAC,CAAC;;IAEpF,IAAA3C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE4C,kBAAoB,CAAC,CAAC;IAC3E,IAAA5C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE6C,kBAAoB,CAAC,CAAC;IAC5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DC6HO,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;OAD3C,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA8C,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;;kIAA1C,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;IADb,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4DAQ3C,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;OAH9C,UAKK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAJJ,UAGU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAFT,UAAqB,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACnB,UAA8C,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;;mIAA1C,GAAsC,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;IAHhB,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAYnD,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA8D,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAA3B,GAAU,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAStC,GAAc,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;OAHtB,UAKK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAJJ,UAGU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAFT,UAAyC,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACvC,UAAsB,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;;;;IAHI,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAW9C,CAAA,IAAA,SAAA,sBAAA,GAAc,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;yCAwCvB,GAAe,CAAA,CAAA,CAAA,IAAA5D,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;IAxCf,GAAA,uBAAA,GAAc,QAAK,IAAI,EAAA;;;;;;;;;;;;;+BAwCvB,GAAe,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAfX,GAAO,CAAA,CAAA,CAAA,CAAC,kBAAkB,KAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAxB3C,UAoCK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAnCJ,UAkCK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjCJ,UAA2E,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;;OAC3E,UA+BU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;OA9BT,UAA4B,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OAC5B,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAA6F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAApB,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,WAAW,CAAA;;OAC5F,UAA+C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAEhD,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAgG,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAArB,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,YAAY,CAAA;;OAC/F,UAA6C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAE9C,UAMK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OALJ,UAAa,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;OACb,UAA6F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAzB,GAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;OACjF,UAA+B,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC/B,UAA+F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAA1B,GAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;OAClF,UAAiC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAElC,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAwF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAA3B,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,kBAAkB,CAAA;;OACvF,UAAgD,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;OASjD,UAEK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAyD,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;;;;yDA9BxB,GAAc,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;mDA8BZ,GAAQ,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;IA1B8B,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,WAAW,CAAA;;;;IAIjB,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,YAAY,CAAA;;;;IAK3B,IAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;;;IAEZ,IAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;;;IAIrB,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,kBAAkB,CAAA;;;uBAGnF,GAAO,CAAA,CAAA,CAAA,CAAC,kBAAkB,KAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAE/B,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;sCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;IADa,GAAA,gBAAA,GAAO,IAAC,iBAAiB,KAAA,KAAA,CAAA,EAAA,mBAAA,CAAA,gCAAA,GAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA;;;;OAA7C,UAIQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;IAJY,GAAA,aAAA,CAAA,MAAA,cAAA,GAAO,IAAC,iBAAiB,CAAA,CAAA;;;;;;;;;oCACrC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;qCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAAJ,MAAI,CAAA;;;;IADa,IAAA,aAAA,CAAA,MAAA,cAAA,GAAO,IAAC,iBAAiB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;IAEZ,CAAA,IAAA,OAAA,YAAA,GAAI,KAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;IAA7B,GAAA,MAAA,CAAA,OAAA,GAAA,kBAAA,YAAA,GAAI,KAAC,QAAQ,CAAA;;;;;OAA5B,UAAqD,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;IAAtB,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,YAAA,GAAI,KAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;IAA7B,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,kBAAA,MAAA,kBAAA,YAAA,GAAI,KAAC,QAAQ,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAkB1B,GAAoB,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;IASpB,CAAA,IAAA,SAAA,4BAAA,GAAoB,QAAK,KAAK,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAdtC,UAoBK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAnBJ,UAkBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjBJ,UAAmE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OACnE,UAeU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;OAdT,UAAqC,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;8DAFH,GAAW,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;oCAGxC,GAAoB,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;IASpB,GAAA,6BAAA,GAAoB,QAAK,KAAK,EAAA;;;;;;;;;;;;;;;;IAdG,KAAA,UAAA,GAAA,oBAAA,CAAA,IAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAMlD,GAAW,CAAA,EAAA,CAAA,CAAA;;;;oCAAhB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;qCAAC,GAAW,CAAA,EAAA,CAAA,CAAA;;;;mCAAhB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAEH,CAAA,IAAA,QAAA,kBAAA,GAAU,KAAC,iBAAiB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;iBAAC,yDAC9B,CAAA,CAAA;;;;;;;;;;;;;;;;;OAFD,UAIK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;OAFJ,UAAgF,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAChF,UAAgF,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;IAF/E,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,mBAAA,IAAA,IAAA,QAAA,MAAA,QAAA,kBAAA,GAAU,KAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhC,UAA+C,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;OAC9C,UAAiE,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;iEAA9B,GAAc,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA7FnD,CAAA,IAAA,SAAA,sBAAA,GAAc,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;IAKvB,CAAA,IAAA,SAAA,iBAAA,GAAS,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;qCAYjB,GAAU,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;IAOX,CAAA,IAAA,SAAA,oBAAA,GAAY,QAAK,IAAI,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;0CAWrB,GAAgB,CAAA,CAAA,CAAA,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;8BApBR8D,YAAU,CAAA,CAAA;;;;oCADY,GAAU,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAhB9C,UAuGM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;OAvFL,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwB,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;IAfpB,GAAA,uBAAA,GAAc,QAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;IAKvB,GAAA,kBAAA,GAAS,QAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;;gDASY,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA;;;2BAGvC,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;IAOX,GAAA,qBAAA,GAAY,QAAK,IAAI,EAAA;;;;;;;;;;;;;;;;;;gCAWrB,GAAgB,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA7Nf,MAAAA,YAAU,GAAG,WAAW,CAAA;;;;;SAR1B,IAAI,CAAA;SACJ,QAAQ,CAAA;;;IAGR,CAAA,IAAA,gBAAgB,GAAG,IAAI,CAAA;;WACrB,OAAO,GAAA,IAAOC,WAAgB,EAAA,CAAA;;;IAMhC,CAAA,IAAA,YAAY,GAAG,KAAK,CAAA;;IACpB,CAAA,IAAA,eAAe,GAAG,KAAK,CAAA;IACvB,CAAA,IAAA,cAAc,GAAG,IAAI,CAAA;IACrB,CAAA,IAAA,SAAS,GAAG,KAAK,CAAA;IACjB,CAAA,IAAA,UAAU,GAAG,IAAI,CAAA;IACjB,CAAA,IAAA,cAAc,GAAG,KAAK,CAAA;IAEtB,CAAA,IAAA,oBAAoB,GAAG,KAAK,CAAA;SAC5B,WAAW,GAAA,EAAA,CAAA;IAEX,CAAA,IAAA,cAAc,GAAG,gBAAgB,CAAA;IACjC,CAAA,IAAA,sCAAsC,GAAG,EAAE,CAAA;SAC3C,qCAAqC,CAAA;;KAEzC,OAAO,CAAA,YAAA;uBACN,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAChF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;sBAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IAClB,EAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;;KAG1C,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,qCAAqC,CAAA,CAAA;IACnD,EAAAC,SAAY,EAAA,CAAA;;;WAGP,QAAQ,GAAA,YAAA;IAEb,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,KAAK,CAAA,CAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,IAAI,CAAA,CAAA;IACb,EAAA,MAAA,YAAY,GAAGC,mBAAwB,CAAC,OAAO,CAAA,CAAA;;IAE/C,EAAA,MAAA,sBAAsB,GAAG,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,mBAAA,CAAA,EAAA;IAClG,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAG,IAAI,CAAC,SAAS,CAAA;QACpB,iBAAiB,EAAG,OAAO,CAAC,iBAAiB;QAC7C,iBAAiB,EAAG,OAAO,CAAC,iBAAiB;IAC7C,IAAA,WAAW,EAAG,YAAY;QAC1B,sBAAsB,EAAG,OAAO,CAAC,kBAAA;;;;IAG7B,EAAA,MAAA,kBAAkB,SAAS,sBAAsB,CAAA;YACjD,cAAc,GAAA,MAAS,kBAAkB,CAAC,IAAI,EAAA,CAAA;YAC9C,KAAK,GAAY,cAAc,CAAC,KAAK,CAAA;IAC3C,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;IACpB,EAAA,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAA,CAAA;;UAC/C,kBAAkB,CAAC,MAAM,IAAI,GAAG,EAAA;OAEnC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA,CAAA;OAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;wBACjC,sCAAsC,GAAG,cAAc,CAAC,OAAO,CAAA,CAAA;IAC/D,GAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAI,CAAA,CAAA;IAChB,GAAA,OAAO,CAAC,KAAK,EAAA,CAAA;IACb,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;OACzC,UAAU;;IACT,KAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,IAAI,CAAA,CAAA;IACvB,KAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,KAAK,CAAA,CAAA;;QAEf,IAAI;;iBAEC,KAAK,EAAA;IAEb,GAAA,qCAAqC,GAAG,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAA,CAAA;;;IAE1E,GAAAC,MAAS,CAAC,OAAO,EAAEJ,YAAU,EAAE,KAAK,CAAA,CAAA;;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;;;IAMd,CAAA,MAAA,wBAAwB,SAAS,UAAgB,IAAA;IAEtD,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,KAAK,CAAA,CAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,IAAI,CAAA,CAAA;MACnB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA,CAAA;MAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;;IAClB,EAAA,IAAA,UAAU,CAAC,KAAK,EAAA;IAEnB,GAAA,qCAAqC,GAAG,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAA,CAAA;IAC1E,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAA,OAAA,CAAA,CAAA;IACxD,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAA,OAAA,CAAA,CAAA;uBACxD,OAAO,CAAC,kBAAkB,GAAG,IAAI,EAAA,OAAA,CAAA,CAAA;uBACjC,OAAO,CAAC,eAAe,GAAG,IAAI,EAAA,OAAA,CAAA,CAAA;OAC9BI,MAAS,CAAC,OAAO,EAAEJ,YAAU,EAAE,UAAU,CAAC,KAAK,CAAA,CAAA;IAC/C,GAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;IACpB,GAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;;WAId,gBAAgB,GAAA,MAAA;MACrB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;;IAC/B,EAAA,IAAA,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,EAAA;IAE/C,GAAA,aAAa,CAAC,qCAAqC,CAAA,CAAA;OACnD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAA,CAAA;IACzC,GAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;;IACpB,GAAA,SAAS,CAAC,UAAU;IACpB,KAAA,YAAA,CAAA,EAAA,EAAA,sCAAsC,GAAG,4BAA5C,CAAA;IACK,KAAA,YAAA,CAAA,EAAA,EAAA,sCAAsC,GAAG,yBAAyB,CAAA,CAAA;;IACpE,GAAA,SAAS,CAAC,UAAU;IAAG,KAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAI,CAAA;IAAG,KAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,IAAI,CAAA,CAAA;;OAC/D,UAAU;;SACT,SAAS,EAAA,CAAA;IACT,KAAA,YAAA,CAAA,EAAA,EAAA,sCAAsC,GAAG,EAAE,CAAA,CAAA;IAC3C,KAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,KAAK,CAAA,CAAA;0BAC5B,WAAW,GAAA,EAAA,CAAA,CAAA;SACX,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAA,CAAA;;QACzC,IAAI;;;;;WAKH,WAAW,GAAA,MAAA;IAChB,EAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,IAAI,CAAA,CAAA;IACrB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;;;WAGlB,cAAc,GAAA,YAAA;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,KAAK,CAAA,CAAA;IACtB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;uBACtB,WAAW,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,wBAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;MACjB,WAAW,CAAC,MAAM,KAAK,CAAC;IAAG,IAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,IAAI,CAAA;IAAG,IAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,KAAK,CAAA,CAAA;;;IAGhF,CAAA,MAAA,gBAAgB,SAAS,UAAU,IAAA;YAClC,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,oBAAA,CAAA,EAAA;IACzE,GAAA,MAAM,EAAE,MAAM;OACd,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,GACnB,KAAK,EAAG,UAAU,CAAC,KAAA,EAAA,CAAA;IAGpB,GAAA,CAAA,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAChB,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA,CAAA,CAAA;;MACjC,cAAc,EAAA,CAAA;;;IAGT,CAAA,MAAA,gBAAgB,SAAS,UAAgB,IAAA;IACxC,EAAA,MAAA,GAAG,GAAU,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,mBAAA,CAAA,EAAA;IACtF,GAAA,MAAM,EAAE,MAAM;OACd,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,GACnB,KAAK,EAAG,UAAU,CAAC,KAAA,EAAA,CAAA;SAGpB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAChB,KAAK,CAAC,KAAK,IAAA;OACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA,CAAA;;;UAEd,GAAG,CAAC,MAAM,KAAK,GAAG,EAAA;OAErB,cAAc,EAAA,CAAA;IACd,GAAA,wBAAwB,CAAC,UAAU,CAAA,CAAA;;;;IAIpC,EAAA,wBAAwB,CAAC,UAAU,CAAA,CAAA;;;cAG3B,UAAU,GAAA;MAClB,SAAS,EAAA,CAAA;;;cAGD,SAAS,GAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,IAAI,CAAA,CAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,IAAI,CAAA,CAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,KAAK,CAAA,CAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,cAAc,GAAG,KAAK,CAAA,CAAA;IACtB,EAAA,OAAO,CAAC,KAAK,EAAA,CAAA;IACb,EAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;IACzC,EAAAE,SAAY,EAAA,CAAA;;;;;;;;;;;IAqDkE,EAAA,OAAO,CAAC,WAAW,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAIjB,EAAA,OAAO,CAAC,YAAY,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAK3B,EAAA,OAAO,CAAC,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAEZ,EAAA,OAAO,CAAC,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAIrB,EAAA,OAAO,CAAC,kBAAkB,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAInE,EAAA,OAAO,CAAC,iBAAiB,GAAA,YAAA,CAAA,IAAA,CAAA,CAAA;;;;;IAwBD,CAAA,MAAA,aAAA,GAAA,UAAA,IAAA,gBAAgB,CAAC,UAAU,CAAA,CAAA;IAC3B,CAAA,MAAA,eAAA,GAAA,UAAA,IAAA,gBAAgB,CAAC,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC5OlE,CAAA,IAAA,OAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;IAAlB,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAFJ,CAAA,IAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;iBAAnB,OAAK,CAAA,CAAA;;iBAAe,GAAC,CAAA,CAAA;;;;;OAA5B,UAAoC,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAAhC,UAA4B,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;;;;;;IAAnB,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAFV,CAAA,IAAA,QAAA,SAAA,GAAC,MAAG,CAAC,GAAA,EAAA,CAAA;;;;;6BAMjB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA;;;;6BAClB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;6BACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;6BACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA;;;;;IARpB,EAAA,aAAA,GAAI,CAAC,CAAA,CAAA,CAAA,QAAQ,qBAAK,GAAW,IAAC,QAAQ,EAAA,OAAAhE,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAF5C,UAWI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAVH,UAA2B,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;;;;OAM3B,UAA4B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC5B,UAA6B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC7B,UAA6B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC7B,UAA8B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;uEAHzB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEAClB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAXpB,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;oCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OApBX,UAsCK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OArCJ,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHJ,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAe,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAGjB,UA+BK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA9BJ,UA6BK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OA5BJ,UA2BO,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;OA1BN,UASO,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OARN,UAOI,CAAA,KAAA,EAAA,EAAA,CAAA,CAAA;OANH,UAAqB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACrB,UAA4B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OAC5B,UAAuB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACvB,UAAwB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACxB,UAAwB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACxB,UAAgC,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OAGlC,UAeO,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;kCAdC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;mCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA3CN,WAAW,CAAA;SACX,QAAQ,GAAA,EAAA,CAAA;SACR,UAAU,CAAA;;KACd,OAAO,CAAA,YAAA;sBACN,WAAW,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;sBAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,oBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IAClB,EAAA,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAA,CAAA;;;KAG5C,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,UAAU,CAAA,CAAA;;;cAGhB,WAAW,GAAA;MACnB,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,oBAAA,CAAA,CAAA,CACnE,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CACjB,IAAI,CAAE,CAAC,IAAA,YAAA,CAAA,CAAA,EAAI,QAAQ,GAAG,CAAC,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICVpB,SAAU,IAAI,CAAC,YAA6B,EAAE,KAAa,EAAE,UAAkB,EAAE,aAAqB,EAAA;IAE3G,IAAA,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE1C,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;aAEe,OAAO,GAAA;IAEtB,IAAA,WAAW,EAAE,CAAC;IACf,CAAC;IAED,SAAS,KAAK,GAAA;IAEb,IAAA,MAAM,EAAE,CAAC;IACV,CAAC;IAED,SAAS,MAAM,GAAA;IAEd,IAAAgB,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE4C,kBAAoB,CAAC,CAAC;IACpF,IAAA5C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE6C,kBAAoB,CAAC,CAAC;IAC5E;;;;;;;;;;;;;;;;;ICHI,CAAA,IAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA;;;IAAQ,CAAA,IAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;iBADzC,IACd,CAAA,CAAA;;iBAAyB,UAAM,CAAA,CAAA;;iBAAyB,UACzD,CAAA,CAAA;;iBAAK,IAAE,CAAA,CAAA;wCAAC,GAAkB,CAAA,CAAA,CAAA,CAAA,CAAA;iBAAC,GAC5B,CAAA,CAAA;;;;;;;;;OAJD,UAKI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAJH,UAGQ,CAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;OADP,UAAK,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;IADH,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAAQ,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;qFAChD,GAAkB,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;WA9BhB,KAKV,EAAA,GAAA,OAAA,CAAA;IAEG,CAAA,IAAA,kBAAkB,GAAG,EAAE,CAAA;;KAE3B,OAAO,CAAA,YAAA;IACF,EAAA,IAAA,KAAK,CAAC,WAAW,KAAK,YAAY,CAAC,QAAQ,EAAA;IAC9C,GAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,GAAG,UAAU,CAAA,CAAA;;IAG3B,GAAA,IAAA,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,UAAU,EAAA;IAC9C,IAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,aAAa,CAAA,CAAA;;;IAEhC,GAAA,IAAA,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,EAAA;YAC3C,kBAAkB,EAAA;IAAI,KAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,IAAI,CAAA,CAAA;;;IACpD,IAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,cAAc,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OC0GtC,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAAkE,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAA/B,GAAU,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAvBtC,GAAe,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;OAHvB,UAuBK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAtBJ,UAoBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAnBJ,UAkBU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCALD,GAAS,CAAA,CAAA,CAAA,CAAA;;;;oCAAd,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OATN,UAAuB,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;OACxB,UAMK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OALJ,UAAa,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;OACb,UAAqF,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;qDAAjB,GAAK,CAAA,CAAA,CAAA,CAAA;;OACzE,UAA+B,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;OAC/B,UAAuF,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;qDAAlB,GAAK,CAAA,CAAA,CAAA,CAAA;;OAC1E,UAAiC,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;OAElC,UAIM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;sDAT+D,GAAK,CAAA,CAAA,CAAA,CAAA;;;;sDAEJ,GAAK,CAAA,CAAA,CAAA,CAAA;;;;mCAInE,GAAS,CAAA,CAAA,CAAA,CAAA;;;;mCAAd,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;4BAAJ,MAAI,EAAA,CAAA,GAAA,WAAA,CAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;sCAAJ,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAXN,UAAkC,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAYX,GAAK,CAAA,EAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;4EAAL,GAAK,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAjB5B,GAAU,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;8BAHF,UAAU,CAAA,CAAA;;;;oCADY,GAAU,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAF9C,UAqCM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAnCL,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwB,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;gDADU,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAnFvC,MAAA,UAAU,GAAG,WAAW,CAAA;;;;;SAJ1B,IAAI,CAAA;SACJ,QAAQ,CAAA;IAIR,CAAA,IAAA,KAAK,GAAG,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA2Bb,SAAS,GAAA,EAAA,CAAA;;;IAGT,CAAA,IAAA,UAAU,GAAG,IAAI,CAAA;;IACjB,CAAA,IAAA,eAAe,GAAG,KAAK,CAAA;;KAG3B,OAAO,CAAA,YAAA;MACN,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAChF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;MAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;IAEZ,EAAA,MAAA,oBAAoB,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,sBAAA,CAAA,CAAA,CAAA;;YACjG,gBAAgB,GAAA,MAAS,oBAAoB,CAAC,IAAI,EAAA,CAAA;IACxD,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,gBAAgB,CAAA,CAAA;MAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA,CAAA;IACnB,EAAA,IAAA,SAAS,CAAC,MAAM,IAAI,CAAC,EACxB,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;MACvB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;;KAGtB,SAAS,CAAA,YAAA;IACR,EAAAM,OAAqB,EAAA,CAAA;;;oBAGP,iBAAiB,CAAC,aAAqB,EAAE,YAAwC,EAAA;MAC/FC,IAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,CAAA,CAAA;IACjE,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;cAGV,UAAU,GAAA;MAClB,SAAS,EAAA,CAAA;;;oBAGK,SAAS,GAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,IAAI,CAAA,CAAA;IACjB,EAAAD,OAAqB,EAAA,CAAA;;;sBAErB,SAAS,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACrF,sBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;MAClB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA,CAAA;IACnB,EAAA,IAAA,SAAS,CAAC,MAAM,IAAI,CAAC,EACxB,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;MACvB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;;;;;;;;;;MAyBmD,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;MAEJ,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;mCAKjC,CAAC,KAAK,iBAAiB,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,WAAW,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC5G/G,MAAM,aAAa,GAAG;IAC7B,EAAE,GAAG,EAAE,UAAU;IACjB,EAAE,MAAM,EAAE,uBAAuB;IACjC,EAAE,OAAO,EAAE,IAAI;IACf,EAAE,YAAY,EAAE,aAAa;IAC7B,EAAE,UAAU,GAAG,OAAO;IACtB,EAAE,UAAU,EAAEvE,MAAI,CAAC;IACnB,IAAI,SAAS,EAAE,WAAW;IAC1B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAC;IAClD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,YAAY,EAAEA,MAAI,CAAC;IACrB,IAAI,SAAS,EAAE,WAAW;IAC1B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAC;IACpD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;AACJ;IACA,EAAE,sBAAsB,EAAE,sBAAsB;IAChD,EAAE,GAAG,EAAE,QAAQ;IACf,CAAC;;;;;;;;;;;wBCpCe,aAAa,EAAA;;;;yDAAuB,GAAgB,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAb5D,CAAA,MAAA,gBAAgB,GAAI,KAAK,IAAA;IAC7B,EAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAAA,CAAA;;;IAGpD,EAAA,OAAO,CAAC,sBAAsB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTlC,UAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QACnB,MAAM,EAAE,QAAQ,CAAC,IAAI;IACrB,IAAA,KAAK,EAAE;;IAEN,KAAA;IACD,CAAA;;;;;;;;"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte index 04cf1640..99019244 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/chat/Layout_create.svelte @@ -79,12 +79,12 @@ -